比较两个drawable中的资源

我试图比较两个drawables但没有成功。 我做了一些研究,甚至有类似的问题,但没有帮助。

在我的应用程序中,我使用getCompoundDrawablesWithIntrinsicBounds将ImageView放在EditText的正确位置。 然后我需要检查哪个图像资源在那里。

这个小样本应该有用,不应该吗? 但它返回“不相等”。

 Drawable drawable1 = ContextCompat.getDrawable(getApplicationContext(),R.drawable.cor); Drawable drawable2 = ContextCompat.getDrawable(getApplicationContext(),R.drawable.cor); if(drawable1 == drawable2){ System.out.println("equal"); }else{ System.out.println("not equal"); } 

getConstantState不能正常工作

如果你这样做: if(drawable1 == drawable2){

你正在比较对象的参考,它不正确…

使用而不是等于getConstantState()方法…

更新尝试与字节或像素进行比较是通常可行的唯一方法。

  // Usage: drawable1.bytesEqualTo(drawable2) drawable1.pixelsEqualTo(drawable2) bitmap1.bytesEqualTo(bitmap1) bitmap1.pixelsEqualTo(bitmap2) 

https://gist.github.com/XinyueZ/3cca89416a1e443f914ed37f80ed59f2