San*_*ana 10 android android-imageview
我已经设置了一个ImageView使用的图像setImageResource(R.drawable.icon1).
现在我的要求是找出为a设置的图像是什么ImageView并进行一些处理.
喜欢
if (imageView.getImageResource() == R.drawable.icon1) {
//do some processing
else if (imageView.getImageResource() == R.drawable.icon2) {
//do somethign else
else
//display
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否存在一种方法(AFAIK,它不存在),以及它是否如何跟踪已为其设置的资源ImageView.
谢谢.萨纳.
小智 7
您应该能够使用tag属性,如下所示:
imageView.setImageResource(R.drawable.icon1);
imageView.setTag(Integer.valueOf(R.drawable.icon1));
// later
int drawable = (Integer) imageView.getTag();
switch(drawable) {
case R.drawable.icon1:
// do_something....
break;
case R.drawable.icon2:
// do_something....
break;
...
}
Run Code Online (Sandbox Code Playgroud)
你假设因为你输入了一个整数,你可以得到一个整数,但这不是setImageResource()有效的.请参见ImageView#setImageResource().这只是一种方便的方法:Android在幕后做的是查找Drawable资源(在大多数情况下,它是BitmapDrawable,但它可以是任何类型),然后将该资源应用于ImageView作为位图对象(即仅图像数据 - 它不知道其原始的"资源ID"以前是什么).
您最好的解决方案是跟踪您使用的最后一个资源ID:
imageView.setImageResource(R.drawable.image1);
this.mLastResourceId = R.drawable.image1;
// ...
// Later, when checking the resource:
if (this.mLastResourceId == R.drawable.image1) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9668 次 |
| 最近记录: |