有可能会自定义一些控件打包成jar给其他程序使用,如果控件里面引用了资源则不能把R文件引用路径写死,因为其他人的apk包路径与你的控件引用的R路径不一样。
有2种方法:
1.JAVA反射:
Class c = Class.forName(context.getPackageName()+".R$color");
Object o = c.newInstance();
Field f = (Field) o.getClass().getDeclaredField("menu_title_color");
Log.e("", "颜色资源Id值为:"+f.getInt(o.getClass()));
2.根据Resource去取:
int id = context.getResources().getIdentifier("menu_title_color", "color", context.getPackageName());//3个参数的含义:资源名称,资料类型,包名
Log.e("", "颜色资源Id值为:"+id);