android开发:如何通过drawable中的图片名字(String类型)来获得它的Id
2015-01-21 13:11
791 查看
首先,在开发一个app的时候,需要将用户设置的背景图片信息保存在配置文件(sharedPreference)中,其中名字的类型为String类型,一直不知道如何通过String来获得图片的Id。
最后,总结有两个方法:
方法一:
不将图片的名字保存,直接保存她的Id,sharedPreference可以保存String、Int、Boolean。所以直接保存他的Id就可以了。
方法二:
如果实在要保存为String,那么只能通过Java的反射机制通过名字来获得它的Id:
代码如下:
public int getImageResourceId(String name) {
R.drawable drawables=new R.drawable();
//默认的id
int resId=0x7f02000b;
try {
//根据字符串字段名,取字段//根据资源的ID的变量名获得Field的对象,使用反射机制来实现的
java.lang.reflect.Field field=R.drawable.class.getField(name);
//取值
resId=(Integer)field.get(drawables);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return resId;
}参数String name就是资源的名字,来获取她的Id
最后,总结有两个方法:
方法一:
不将图片的名字保存,直接保存她的Id,sharedPreference可以保存String、Int、Boolean。所以直接保存他的Id就可以了。
方法二:
如果实在要保存为String,那么只能通过Java的反射机制通过名字来获得它的Id:
代码如下:
public int getImageResourceId(String name) {
R.drawable drawables=new R.drawable();
//默认的id
int resId=0x7f02000b;
try {
//根据字符串字段名,取字段//根据资源的ID的变量名获得Field的对象,使用反射机制来实现的
java.lang.reflect.Field field=R.drawable.class.getField(name);
//取值
resId=(Integer)field.get(drawables);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return resId;
}参数String name就是资源的名字,来获取她的Id
相关文章推荐
- 从assets里取图片和从drawable里面根据图片的名字获得图片相应的id值
- Android通过图片名字获得ID
- Android通过图片名字获得ID
- Android通过图片名字获得ID
- Android通过图片名字获得ID
- Android通过图片名字获得ID
- 通过名字获得图片的id
- android中通过id获得drawable类型的数据
- Android通过拼接名字获取drawable下的图片(根据图片名称获取在drawable中的ID)
- 通过drawable下的图片名获取图片的id
- 如何通过窗口名字获得窗口对象
- 通过字符串构建查找图片资源ID,并取得Drawable对象
- 通过文件名获得资源ID,主要是图片.
- Android 视频开发中如何通过url或者本地视频文件路径获得视频的第一帧图片
- 判断资源存在与否如判断一个drawable的图片存在及通过id加载图片
- Android依据名字通过反射获取在drawable中的图片
- 如何通过一个Url获得图片的大小
- 循环获得drawable资源里面的图片索引ID
- 判断资源存在与否如判断一个drawable的图片存在及通过id加载图片
- 如何通过URL获得网络上的图片