安卓 imageview资源图片ID获取方法
来源:互联网 发布:明星语音模拟软件 编辑:程序博客网 时间:2024/06/05 08:24
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设置资源图片
- jackson中自定义处理序列化和反序列化
- BZOJ系列3856《Monster》题解
- oracle(oracle的函数)
- C语言去除空格方法
- java线程系列
- 安卓 imageview资源图片ID获取方法
- SQLServer中的全局变量
- 在tomcat下部署工程方式
- hdoj1071积分求面积
- Android开发在string.xml文件中设置部分字体颜色大小
- 基础总结篇之三:Activity的task相关
- unity3d---案例分析
- NSArray实现深拷贝
- PHP设计模式——数据访问对象模式