gpt4 book ai didi

java - 比较两个可绘制对象中的资源

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:13:06 25 4
gpt4 key购买 nike

我正在尝试比较两个可绘制对象但没有成功。我做了一些研究,甚至有一个类似的问题,但没有帮助。

在我的应用程序中,我使用 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() 方法代替 equals...

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

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

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

关于java - 比较两个可绘制对象中的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36373547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com