如何比较两个ImageViews?

时间:2017-10-14 21:46:21

标签: android background drawable

我想通过从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版本吗?

1 个答案:

答案 0 :(得分:2)

尝试比较两者的BitmapDrawable:

  Bitmap bitmap = ((BitmapDrawable)imgView1.getDrawable()).getBitmap();
    Bitmap bitmap2 = ((BitmapDrawable)imgView2.getDrawable()).getBitmap();

  if(bitmap == bitmap2)
     {
//Code blcok
       }