假如在drawable目录下放一个图片文件,由于一些原因,我们在程序中仅仅知道它的文件名,而不知道它的资源ID,当我们需要这个资源ID的时候,可以使用下面的一行代码获取到:
方法一:
- /**
- * 获取图片名称获取图片的资源id的方法
- * @param imageName
- * @return
- */
- public int getResource(String imageName){
- Context ctx=getBaseContext();
- int resId = getResources().getIdentifier(imageName, "drawable" , ctx.getPackageName());
- return resId;
方法二:
- /**
- * 获取图片名称获取图片的资源id的方法
- * @param imageName
- * @return
- */
- public int getResourceByReflect(String imageName){
- Class drawable = R.drawable.class;
- Field field = null;
- int r_id ;
- try {
- field = drawable.getField(imageName);
- r_id = field.getInt(field.getName());
- } catch (Exception e) {
- r_id=R.drawable.b_nothing;
- Log.e("ERROR", "PICTURE NOT FOUND!");
- }
- return r_id;
- }