安卓 imageview资源图片ID获取方法
2016-10-17 10:44
417 查看
img.setImageResource(R.drawable.a2);
img.setTag(R.drawable.a2);
this.img.getTag()来自http://stackoverflow.com/questions/4526585/imageview-drawable-id-in-android
imageview
drawable id in android
up vote5down votefavorite 3 | 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. android imageview
| ||||||||||||
a comment |
4 Answers
activeoldestvotesup vote11down voteaccepted | 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; } });
| ||||||||||||||||||||
comments |
up vote2down vote | 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获取方法
- 安卓开发学习之016 ImageView(二)图片的N种获取方法
- 安卓设置imageview 背景图片资源
- 安卓 ImageView使用 drawable下资源 闪退的解决方法
- 安卓中根据图片文件名获取图片资源ID
- 判断ImageView的图片资源ID
- Android Smart Image View使用方法--从url获取图片或从通讯录获取图片,支持缓存
- 获取服务器Url图片资源,并显示在ImageView中 Android
- 安卓控件使用系列17:ImageView获取网络图片
- iOS webview 获取html中所有的图片资源,图片添加点击方法
- 安卓开发中如何获取网络图片并设置到ImageView?
- 安卓中获取imageview的图,在另一个imageview里显示,还有得到图片
- Android中ImageView使用网络图片资源的方法
- ImageView访问网络图片资源的方法
- Android的ImageView如何显示网络图片资源
- 已经知道图片资源的ID号是resid。如何获取图片资源的文件名?
- Android根据图片文件名获取它的资源ID 的两种方式
- Android里同一个ImageView显示不同的图片的方法
- 从 相机 或者相册 获取图片显示在ImageView 上
- Android学习笔记21:ImageView获取网络图片