如何将 ImageButton 的 Image 与 drawable 进行比较?

问题描述

如果我的 ImageButton button 的图像等于可绘制对象,我希望执行某个操作。像这样:

if (button.getBackground().getConstantState()==getResources().getDrawable(R.drawable.mydrawable).getConstantState())
{
     //perform action//
}

但如果我这样做,getDrawable 会变成红色下划线,我不知道为什么?

有人可以帮我吗?

解决方法

第一次

ImageButton temp =  findViewById(R.id.myImagebtn);
Bitmap imageBtm = ((BitmapDrawable)temp.getDrawable()).getBitmap();
Drawable myDrawable = getResources().getDrawable(R.drawable.apple);
Bitmap appleBtm = ((BitmapDrawable) myDrawable).getBitmap();

第二个

if(imageBtm.sameAs(appleBtm))
{
Log.i("Bitmap compare","equal");
}
,

getConstantState() 并不总是有效。

您可以比较它们是否与它们相等:

  • 宽 x 高
  • 像素
  • 字节