我试图比较两个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
总结以上是内存溢出为你收集整理的java – 比较两个drawable中的资源全部内容,希望文章能够帮你解决java – 比较两个drawable中的资源所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)