您的位置:首页 > 移动开发 > Android开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息