从imageView检查drawable id

时间:2011-04-09 12:47:08

标签: android android-imageview

大家好我得到了一个带有imageview的情况,我动态设置了可绘制的源和文本,类似于这个,类似于question

title.setText(items.get(position).getTitle());
icon.setImageResource(this.icons.getIcon(items.get(position).getIcon()));

在imageview上使用onClickIcon的xml,我需要知道哪些图像是id drawable来检查它是否等于我的

<ImageView android:id="@+id/image" 
        android:onClick="onClickIcon"
         />

活动

public void onClickIcon(View v) {

    int id =  v.getId();//instead i need the int of the drawable image

    switch (id) {
    case R.drawable.info:
        //do something
        break;
    case R.drawable.links_icon:
        //do something
        break;
    case R.drawable.map_icon:
        //do something
        break;
    default:
        break;
    }
}

提前谢谢你们,我也很抱歉我的英语,下次我试着改进它。

干杯

2 个答案:

答案 0 :(得分:3)

您可以使用setTag()方法..

  

ImageViewsetTag(R.id.ImageView,this.icons.getIcon(items.get(位置).getIcon()));

并在onClick方法中使用getTag(R.id.ImageView)..

答案 1 :(得分:1)

这是另一种类似于CapDroid答案的解决方法:

您可以使用ImageView标记创建自己的getImageResource()getDrawableId()函数。

在onCreate()中:

imageView0 = (ImageView) findViewById(R.id.imageView0);
imageView1 = (ImageView) findViewById(R.id.imageView1);
imageView2 = (ImageView) findViewById(R.id.imageView2);

imageView0.setTag(R.drawable.apple);
imageView1.setTag(R.drawable.banana);
imageView2.setTag(R.drawable.cereal);

然后,如果你愿意,可以使用简单的函数获取drawable id:

private int getImageResource(ImageView iv) {
    return (Integer) iv.getTag();
}

我希望这会对你有所帮助,这确保我的工作更轻松。