打jar包的时候,你会发现R文件中的资源不能访问因此,需要通过反射动态获取资源的id
/**
* 反射得到组件的id号
* @param packageName 包名
* @param className layout,string,drawable,style,id,color,array
* @param idName 唯一文件名
* @return 资源id
*/
public static int getCompentID(String packageName, String className, String idName) {
int id = 0;
try {
Class<?> cls = Class.forName(packageName + ".R$" + className);
id = cls.getField(idName).getInt(cls);
} catch (Exception e) {
Log.e("Error", "缺少" + idName + "文件!");
e.printStackTrace();
}
return id;
}
示范(获取图片)
ImageView iv = (ImageView) findViewById(R.id.imageView1);
int id = getCompentID("in.srain.cube.views.ptr", "drawable", "head");
iv.setImageResource(id);