实现有两个方法:
1. 通过反射进行(威力强大的反射)
private int getResouseIdByRef(String name){
try {
Field field = R.drawable.class.getField(name);
return field.getInt(new R.drawable());
} catch (IllegalAccessException e) {
e.printStackTrace();
return 0;
} catch (NoSuchFieldException e) {
e.printStackTrace();
return 0;
}
}
2. 通过Resource提供的一个方法来实现
1) name 资源的名称
2) defType 资源的类型
3) 资源所在包的包名
res.getIdentifier(name, defType, defPackage)
代码示例:
private int getResourceIdByFilter(String name) {
Resources res = this.getResources();
return res.getIdentifier(name, "drawable", this.getPackageName());
}
搜噶,问题一定得了美美的解答有木有?