2017-10-14 115 views
0

我想通過從Drawable獲取背景來檢查兩個imageViews是否匹配。如何比較兩個ImageViews?

我沒有用這種方式:

 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

嘗試比較兩者的BitmapDrawable:

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

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

有什麼東西不對您的例子IDK的爲什麼,當我與它不工作我的ImageView變量名稱替換imgView1,我應該使用這樣的:imgView1.getBackground ()? –

+0

對不起,您應該使用:位圖位圖=((BitmapDrawable)imgView1.getDrawable())。getBitmap(); – Nawrez

+1

很棒!但仍然需要知道他們都在使用什麼圖片?它是蘋果嗎?或橙色?所以當我嘗試獲取當前背景時,它不適用於API 26或API 21 –