sne*_*k14 5 java android button drawable imageview
这是我的问题......:
在我的活动中,我有一个ImageView
和一个Button
.我希望Button仅在ImageView
显示某个drawable 时执行操作.是的,这意味着ImageView
在各种drawable之间进行动画处理,这些drawable被编码使得它不会因我想要的而中断.
ImageView imgview = (ImageView)findViewById(R.id.imgviewsid);
Resources res = getResources();
Drawable acertaindrawable = res.getDrawable(R.drawable.thecertaindrawable);
Drawable variabledrawable = imgview.getDrawable();
if (variabledrawable == acertaindrawable)
{
//does something
}
Run Code Online (Sandbox Code Playgroud)
它没用.我把它缩小到"if(variabledrawable == acertaindrawable)"这一行的错误.虽然Eclipse没有公然报告Android无法识别的错误,如果两个drawables是相同的,我已经测试了代码的其他区域,所有似乎都工作正常.
正如 Itsik 所解释的,即使两个变量都包含对“看起来”相同的对象的引用,它们也是两个不同的对象实例。
== 运算符比较引用。仅当两个变量引用同一个对象实例时,它才返回 true。相同的内存空间。
Drawable 和 BitmapDrawable 都没有实现特定的 .equals() 方法,该方法可以用于检查 2 个实例是否包含相同的数据,因此 Mathias Lin 提示尝试 .equals() 将不起作用。
您可以遵循Itsik的建议而无需扩展Drawable,而是使用View.setTag()和View.getTag()方法。这些方法允许将您选择的任何对象附加到视图并稍后检索它。每次更改 ImageView 的内容时,通过将简单的标识符(无论是技术整数标识符还是定义位图源的 url)附加到 ImageView,您将能够轻松识别它。
归档时间: |
|
查看次数: |
4370 次 |
最近记录: |