获取ImageView的一个绘制的IDImageView、ID

由网友(︿像孤魂野鬼)分享简介:我有一个的ImageView ,并在其上​​设置一个绘制。现在,我需要得到绘制的ID对的ImageView 动态点击事件。我怎样才能得到它?I have one ImageView and set a drawable on it. Now I need to get the ID of the drawable o...

我有一个的ImageView ,并在其上​​设置一个绘制。现在,我需要得到绘制的ID对的ImageView 动态点击事件。我怎样才能得到它?

I have one ImageView and set a drawable on it. Now I need to get the ID of the drawable on click event of ImageView dynamically. How can I get it?

推荐答案

我想,如果我理解正确的话,这是你在做什么。

I think if I understand correctly this is what you are doing.

ImageView view = (ImageView) findViewById(R.id.someImage);
view.setOnClickListener(new OnClickListener() {
  public void onClick(View view) {
   ImageView imageView = (ImageView) view;
   assert(R.id.someImage == imageView.getId());
   switch(getDrawableId(imageView)) {
    case R.drawable.foo:
     imageView.setDrawableResource(R.drawable.bar);
     break;
    case R.drawable.bar:
    default:
     imageView.setDrawableResource(R.drawable.foo);

     break;
  }
});

对吗?使功能getDrawableId()不存在。你不能得到一个绘制从因为ID只是一个参考的数据如何构建一个可绘制在设备上的位置实例化的ID。一旦绘制构造它没有办法取回被用来创建它的RESOURCEID。但是,你可以把它的工作是这样的:

Right? So that function getDrawableId() doesn't exist. You can't get a the id that a drawable was instantiated from because the id is just a reference to the location of data on the device on how to construct a drawable. Once the drawable is constructed it doesn't have a way to get back the resourceId that was used to create it. But you could make it work something like this:

ImageView view = (ImageView) findViewById(R.id.someImage);
view.setOnClickListener(new OnClickListener() {
  public void onClick(View view) {
   ImageView imageView = (ImageView) view;
   assert(R.id.someImage == imageView.getId());
   Integer integer = (Integer) imageView.getTag();
   integer = integer == null ? 0 : integer;
   switch(integer) {
    case R.drawable.foo:
     imageView.setDrawableResource(R.drawable.bar);
     imageView.setTag(R.drawable.bar);
     break;
    case R.drawable.bar:
    default:
     imageView.setDrawableResource(R.drawable.foo);
     imageView.setTag(R.drawable.foo);
     break;
  }
});
阅读全文

相关推荐

最新文章