这是我们获取属于我们的应用程序的drawable的资源标识符的方式
int resID = getResources().getIdentifier("resourceName",
"drawable", "myPackageName");
但是当drawable不是我们的时候我们怎么办呢?
1。它属于android
2.它属于另一个应用程序(我猜这是通过使用其他应用程序的包名来完成的)
答案 0 :(得分:0)
这是我的解决方案,它适用于我..假设iconResName的格式为:packageName+":drawable/"+drawableName;
我用我编写的以下函数获取资源Id。然后我们可以使用这个resId来获得drawable。
public static int getResIdFromResEntryName(String iconResName,Context con){
try{
String packageName = iconResName.split(":")[0];
Context otherAppContext = con.createPackageContext(packageName,Context.CONTEXT_INCLUDE_CODE|Context.CONTEXT_IGNORE_SECURITY);
Resources resources = otherAppContext.getResources();
int resId = resources.getIdentifier(iconResName, null, null);
return resId;
}catch(Exception e){return 0;}
}