gpt4 book ai didi

android - 比较 Android 中的 Drawables 无法正常工作

转载 作者:行者123 更新时间:2023-11-30 02:35:35 25 4
gpt4 key购买 nike

我正在为 ImageButton 编写 onClick 方法,我必须将按钮中的图像与我的资源文件夹中的另一个图像进行比较才能做一些事情。这是我写的代码,我在其中放置了一些日志消息:

public void onClick(View v){
Log.e(LOGTAG, "bolarojo: "+getResources().getDrawable(R.drawable.bolarojo).getConstantState().toString());
Log.e(LOGTAG, "bolaclic: "+v.getBackground().getConstantState().toString());
if(v.getBackground().getConstantState().equals(getResources().getDrawable(R.drawable.bolarojo).getConstantState())){
Log.e(LOGTAG, "buh");

它显示:bolarojo:android.graphics.drawable.BitmapDrawable$BitmapState@4106ac08 bolalic:android.graphics.drawable.StateListDrawable$StateListState@41070780由于 v 持有 R.drawable.bolarojo 日志消息不应该相同吗?无论如何,我不明白为什么它不显示“buh”。

最佳答案

如果您查看正在处理的对象类型,您会发现其中一个对象具有 BitmapState 类型的常量状态,而另一个具有 StateListState。自然地,比较两个不同类型的对象将导致它们不相等。即使这样,也不能保证两个 ConstantState 相等,即使它们来自同一个 drawable。与其直接比较背景,不如从外部跟踪状态。这可能会更容易、更可靠。

关于android - 比较 Android 中的 Drawables 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26618858/

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