我将此属性设置为视图
时出现此错误java.lang.NoSuchMethodError: android.view.View.setAlpha
在我的代码中
((View) findViewById(R.id.view)).setAlpha(100);
//with float value also doesn't works
可能是什么问题?我只是在运行时没有任何编译错误
答案 0 :(得分:3)
作为documentation状态,setAlpha
需要API 11.您可能将minSDK设置为低于11的值,并在低于11的设备上安装/运行此。这意味着它不会有这个方法,所以Java找不到它。
答案 1 :(得分:1)
我使用代码来设置图像本身的Alpha,而不是视图。这可以从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;
}
}
答案 2 :(得分:1)
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