比较两个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