阅读按钮的背景图片

时间:2017-11-13 19:42:41

标签: android

我试图阅读按钮的背景图片,这就是我正在尝试的:

  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);
        }

        }
    });

但是它无法正常工作,我无法看到问题

2 个答案:

答案 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;

}