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

标签: Android drawable 图片
3245人阅读 评论(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,然后就可以使用了,是不是很简单!

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

查看评论

通过图片id R.drawable.xx 的到Drawable 对象

getResources().getDrawable(R.drawable.xx)
  • lizhenmingdirk
  • lizhenmingdirk
  • 2012-03-22 16:14:49
  • 3785

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

flag.png 為例,可以用: int idFlag = getResources().getIdentifier(          getPackageName() + ":drawab...
  • get123
  • get123
  • 2012-07-07 08:00:42
  • 2795

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

private int getImageByReflect(String imageName) { int rID = 0; try { Field field = Class...
  • ada498607067
  • ada498607067
  • 2014-10-20 11:17:24
  • 338

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

img.setImageResource(R.drawable.a2); img.setTag(R.drawable.a2); this.img.getTag() 来自http:...
  • wuhenzhangxing
  • wuhenzhangxing
  • 2015-01-20 17:58:34
  • 17238

Android:资源 id 及资源 id 的动态获取

我们平时获取资源是通过 findViewById 方法进行的,比如我们常在onCreate方法中使用这样的语句:btnChecked=(ImageView)findViewById(R.id.imgC...
  • kmyhy
  • kmyhy
  • 2011-07-04 16:17:56
  • 74325

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

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

android 根据文件名获取图片资源id

android 根据文件名获取图片资源id
  • bitian123
  • bitian123
  • 2016-07-07 14:45:26
  • 2419

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

Android通过drawable下图片名字获取图片,可以通过拼接名字获取图片:   //得到application对象   ApplicationInfo appInfo = getAppli...
  • Billy_Zuo
  • Billy_Zuo
  • 2017-04-27 14:36:36
  • 2284

Android根据图片路径获取图片名字

public static String getPicNameFromPath(String picturePath){ String temp[] = picturePath.rep...
  • Billy_Zuo
  • Billy_Zuo
  • 2017-01-13 10:42:59
  • 1541

Android根据图片文件名获取它的资源ID 的两种方式

http://topmanopensource.iteye.com/blog/1600321      假如在drawable目录下放一个图片文件,由于一些原因,我们在程序中仅仅知道...
  • u012587637
  • u012587637
  • 2016-08-17 11:12:09
  • 6414
    个人资料
    持之以恒
    等级:
    访问量: 35万+
    积分: 4166
    排名: 9165
    最新评论