关闭

Android开发中根据图片名称获取在drawable中的ID

标签: Android drawable 图片
2898人阅读 评论(0) 收藏 举报
分类:

在Android开发中图片资源是必不可少的,如ImageView需要图片资源的ID,ImageButton需要资源的ID等等,我们可以用R.drawable.XXX可以获取图片资源的ID,但是,在某些时候,这样做很费时,我们想动态的获得资源ID,比如说,我传入一个图片名称的字符串,根据字符串来获得资源的ID这样就很方便了,没错,这样确实很方便,我们如果对图片的名称稍加改动,比如用img1.png,img2.png,img3.png...这样就可以在一个循环之内获得所有的ID,对开发来说少写的就不是几行代码这么简单了。

好了,我来给大家说一下实现的方法。这种实现的方法主要是用java提供的反射机制来实现的,不得不说,反射机制是在是太强大了,这叫会用的人才明白它的好处(我也不是太会用,这是明白一点小用法,比如这篇文章说的用法)。不会反射的也没关系,我接下来要写的一些代码可以通用,只需要稍加改动就可以用到自己的开发中。

代码如下:

public class MainActivity extends Activity {

	private ImageView mView;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		mView = (ImageView) findViewById(R.id.view);
		Class drawable = R.drawable.class;
		Field field = null;
		try {
			field = drawable.getField("background");
			int res_ID = field.getInt(field.getName());
			mView.setImageResource(res_ID);
		} catch (Exception e) {}
	
	
	}

}
在上面的代码中,我们首先获取R.drawable类的一个引用,把它赋值给Class类的一个对象。然后生成Field类的一个对象,根据图片的名称可以获得该成员变量,然后就可以获得该成员变量的值了,也就是ID,然后就可以使用了,是不是很简单!

经过我本人测试没有问题,可以正常使用,如有问题,欢迎大家和我交流!^_^

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Android:根据图片的名称获取对应的资源id

/** * 根据图片的名称获取对应的资源id * @param resourceName * @return */ public int getDrawResourceID(String resourceName) { Resources res=getResources();...
  • sange77
  • sange77
  • 2014-11-12 09:28
  • 2519

安卓 imageview资源图片ID获取方法

img.setImageResource(R.drawable.a2); img.setTag(R.drawable.a2); this.img.getTag() 来自http://stackoverflow.com/questions/4526585/imageview-dr...
  • wuhenzhangxing
  • wuhenzhangxing
  • 2015-01-20 17:58
  • 16379

安卓中根据图片文件名获取图片资源ID

方法一: /** * 获取图片名称获取图片的资源id的方法 * @param imageName * @return */ public int getResource(String imageName) { Context ctx = getBaseC...
  • ithouse
  • ithouse
  • 2016-01-14 19:56
  • 772

另外的方法,得到drawable目录下的图片的ID

flag.png 為例,可以用: int idFlag = getResources().getIdentifier(          getPackageName() + ":drawable/flag",&...
  • get123
  • get123
  • 2012-07-07 08:00
  • 2767

如何获取已加载在ImageView中的图片ID

如何获取已加载在ImageView中的图片ID
  • drgzong
  • drgzong
  • 2016-07-04 21:16
  • 2733

Android中通过资源文件获取drawable的几种方法

android 获取资源文件 r.drawable中的图片转换为drawable、bitmap 转载自http://cfanz.cn/index.php?c=article&a=read&id=141146 1、 Resources resources = mC...
  • qq_25184739
  • qq_25184739
  • 2015-11-12 22:54
  • 9692

android imageView 获取指定名字的图片、从MyEclipse服务器下载图片

设置指定名字的图片;int imgId = getResources().getIdentifier(imgName, "drawable", getPackageName()); //imgName为图片名称; imageView.setImageResource(imgI...
  • baidu_32731497
  • baidu_32731497
  • 2016-02-28 01:30
  • 730

android——获取ImageView上面显示的图片bitmap对象

获取的函数方法为:Bitmap bitmap=imageView.getDrawingCache(); 但是如果只是这样写我们得到的bitmap对象可能为null值,正确的方式为: imageView.setDrawingCacheEnabled(true); Bitmap bitma...
  • y_f123
  • y_f123
  • 2015-08-28 11:06
  • 2835

获取ImageView中的图像

我们知道在Android中ImageView是一个用于显示图像的控件,比如在很多联系人方面的应用中,需要为联系人拍摄头像,并将得到的头像放在一个 ImageView对象中显示。通常,在没有为联系人拍摄头像之前,ImageView对象中显示的是一个缺省的图片。因此,在保存联系人头像数据时,需要比较拍摄...
  • dhy270498872
  • dhy270498872
  • 2012-11-22 10:20
  • 21272

Android通过拼接名字获取drawable下的图片(根据图片名称获取在drawable中的ID)

Android通过drawable下图片名字获取图片,可以通过拼接名字获取图片:   //得到application对象   ApplicationInfo appInfo = getApplicationInfo();   //得到该图片的id(name 是该图片的名字,"dra...
  • Billy_Zuo
  • Billy_Zuo
  • 2017-04-27 14:36
  • 1699
    个人资料
    • 访问:287877次
    • 积分:3821
    • 等级:
    • 排名:第9764名
    • 原创:120篇
    • 转载:13篇
    • 译文:0篇
    • 评论:94条
    最新评论