安卓 imageview资源图片ID获取方法
来源:互联网 发布:iphone8爆炸知乎 编辑:程序博客网 时间:2024/06/05 15:20
img.setImageResource(R.drawable.a2);
img.setTag(R.drawable.a2);
imageview drawable id in android
i had taken one imageview and set a drawable on it. Now i need to get id of drawable onclick event of imageview dynamicaly. How can i get it? anyone who already messes with it and have a solution pls help me.
4 Answers
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; }});
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; }});
I answered something like this in another question already, but will change it just a little for this one.
Unfortunately, there is no getImageResource()
or getDrawableId()
. But, I created a simple workaround by using the ImageView tags.
In 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);
Then, if you like, you can create a simple function to get the drawable id:
private int getDrawableId(ImageView iv) { return (Integer) iv.getTag();}
Too easy.
- 安卓 imageview资源图片ID获取方法
- 安卓 imageview资源图片ID获取方法
- 安卓imageview获取网络图片
- 安卓开发学习之016 ImageView(二)图片的N种获取方法
- 安卓ImageView的几种资源调用方法
- 安卓Imageview控件如何获取网络图片
- 安卓控件使用系列17:ImageView获取网络图片
- Android 获取图片资源id
- ImageView访问网络图片资源的方法
- 安卓设置imageview 背景图片资源
- Android通过图片名称获取资源id
- android 根据文件名获取图片资源id
- Android根据图片资源ID获取文件名
- 如何获取已加载在ImageView中的图片ID
- 获取安卓设备ID
- 安卓ImageView显示SVG图片
- 安卓开发中如何获取网络图片并设置到ImageView?
- imageview设置资源图片
- 使用VisualSVN Server搭建SVN服务器
- ListView异步加载图片,完美实现图文混排
- SSL安全证书
- 使用细粒度锁的c++线程安全队列
- Java中使用Jedis操作Redis
- 安卓 imageview资源图片ID获取方法
- 蓝牙之十八- bluetooth pair
- java注释
- Workbench使用教程
- AFNetworking 3.0+ 启用完整、严格的https证书较验参考代码
- openwrt编译一些应用的过程
- 三大框架SSH成长路程(十九)
- 动态规划系列问题-最长公共子串
- hdu 2665 Kth number(划分树模板题)