情况如下:我有两个项目。假设LibraryProject
和MainProject
。 MainProject
将LibraryProject
引用为库。
我在LibraryProject
中有一个 Activity ,需要发现MainProject
是否定义了特定的可绘制对象,比方说“logo.png”(认为徽标图像必须由每个`MainProject定义,而不是由LibraryProject定义。
如何在LibraryProject
的一项 Activity 中,发现MainProject
在res/drawable
文件夹中是否有此图像?
显然,我尝试查看R.drawable.logo != 0
(或它的变体),但是如您所知,由于该图像不在res/drawable
的LibraryProject
文件夹中,因此该行将无法编译。
我也尝试过getResources().getIdentifier("logo", "drawable", null) != 0
,但是此boolean表达式始终返回false,因为.getIdentifier()
始终返回零。
任何想法?
最佳答案
您可以尝试以下操作:(但请记住,上下文始终为“ChildProject”)
public static Drawable getDrawable(Context context, String resource_name){
try{
int resId = context.getResources().getIdentifier(resource_name, "drawable", context.getPackageName());
if(resId != 0){
return context.getResources().getDrawable(resId);
}
}catch(Exception e){
Log.e(TAG,"getDrawable - resource_name: "+resource_name);
e.printStackTrace();
}
return null;
}
关于android - 如何从库项目中的项目中获取资源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15665386/