Ошибка при изменении свойства альфа - PullRequest
2 голосов
/ 12 декабря 2011

Я получаю эту ошибку за установку свойства alpha для представления

java.lang.NoSuchMethodError: android.view.View.setAlpha

в моем коде

((View) findViewById(R.id.view)).setAlpha(100);

//with float value also doesn't works

В чем может быть проблема? У меня нет ошибок компиляции только во время выполнения

Ответы [ 3 ]

3 голосов
/ 12 декабря 2011

Как указано в документации , setAlpha требует API 11. Возможно, ваш minSDK установлен на значение ниже 11 и вы устанавливаете / запускаете его на устройстве ниже 11. Это означает, что он не у меня нет этого метода, поэтому Java не может его найти.

1 голос
/ 23 января 2014

setAlpha () Этот метод устарел на уровне API 16.

использовать setImageAlpha (int) вместо

вероятно, у вас есть android: targetSdkVersion выше 15, поэтому вы можете проверить, когда используете setAlpha или

if(Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
    ((View) findViewById(R.id.view)).setImageAlpha(100);
    } else {
    ((View) findViewById(R.id.view)).setAlpha(100);
}

значение Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1 равно 15

1 голос
/ 25 февраля 2013

Я использовал код для установки альфы самого изображения, а не вида. Это доступно с уровня API 1 ..

public void toggleButton(int i) {
    if (indImageBtnEnabled[i]) {

        int di = getDrawableId(findViewById(myImagebtns[i]));
        Drawable d = this.getResources().getDrawable(di);
        d.setAlpha(25);

        ((ImageView) findViewById(myImagebtns[i])).setImageDrawable(d);

        indImageBtnEnabled[i] = false;
    } else {
        // findViewById(myImagebtns[i]).setAlpha(1f) << NEEDS API11;
        int di = getDrawableId(findViewById(myImagebtns[i]));
        Drawable d = this.getResources().getDrawable(di);
        d.setAlpha(255);

        ((ImageView) findViewById(myImagebtns[i])).setImageDrawable(d);

        indImageBtnEnabled[i] = true;
    }
}
...