我试图阅读按钮的背景图片,这就是我正在尝试的:
ImageView btn_java1 = (ImageView)findViewById(R.id.background);
int draw = R.drawable.ic_launcher;
btn1.setOnClickListener(new OnClickListener() {
public void onClick(View var1) {
if (btn_java1.getBackground().equals(draw)){
a.setVisibility(View.VISIBLE);
}
else{
a.setVisibility(View.INVISIBLE);
}
}
});
但是它无法正常工作,我无法看到问题
答案 0 :(得分:0)
getBackground()返回一个Drawable。 draw是一个整数。所以比较它们并不顺利......
也许你可以使用:
text-size-adjust
希望你意识到“发射器”不是“发射器”。
答案 1 :(得分:0)
你不需要定义一个int变量;你需要做的就是在if条件下写下代码:
if (btn_java1.getDrawable().getConstantState() == getResources().getDrawable( R.drawable.ic_luncher).getConstantState())
我现在不记得了但是检查上面的代码是否有getConstantState()
,看看它的工作是否正常......
修改强>
对于上面的api 21,您可以使用此方法:
@SuppressWarnings("deprecation")
@SuppressLint("NewApi")
public static boolean checkImageResource(Context ctx, ImageView imageView,
int imageResource) {
boolean result = false;
if (ctx != null && imageView != null && imageView.getDrawable() != null) {
ConstantState constantState;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
constantState = ctx.getResources()
.getDrawable(imageResource, ctx.getTheme())
.getConstantState();
} else {
constantState = ctx.getResources().getDrawable(imageResource)
.getConstantState();
}
if (imageView.getDrawable().getConstantState() == constantState) {
result = true;
}
}
return result;
}