我想通过从Drawable获取背景来检查两个imageView是否匹配。
我确实使用过这种方式:
if (imgView1.getBackground().getConstantState()
.equals(ContextCompat.getDrawable(getApplicationContext(),R.drawable.myImage)
.getConstantState())
&&
imgView2.getBackground().getConstantState()
.equals(ContextCompat.getDrawable(getApplicationContext(),R.drawable.myImage)
.getConstantState()))
{
// do something
}
它在API 23和API 24上运行良好,但不支持API 21和API 26? 还有另一种方法可以让它适用于所有Android版本吗?
答案 0 :(得分:2)
尝试比较两者的BitmapDrawable:
Bitmap bitmap = ((BitmapDrawable)imgView1.getDrawable()).getBitmap();
Bitmap bitmap2 = ((BitmapDrawable)imgView2.getDrawable()).getBitmap();
if(bitmap == bitmap2)
{
//Code blcok
}