作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
情况是这样的:我有两个项目。假设一个 LibraryProject
和一个 MainProject
。 MainProject
将 LibraryProject
作为库引用。
我在 LibraryProject
中有一个 Activity 需要发现 MainProject
是否定义了一个特定的可绘制对象,比如说“logo.png”(认为 Logo 图像必须由每个`MainProject 定义,而不是由 LibraryProject 定义。
如何在 LibraryProject
的一个 Activity 中发现 MainProject
是否在 res/drawable
文件夹中有此图像?
显然我已经尝试查看是否 R.drawable.logo != 0
(或它的变体),但如您所知,这一行将无法编译,因为图像不在LibraryProject
的 res/drawable
文件夹。
我也试过 getResources().getIdentifier("logo", "drawable", null) != 0
但是这个 bool 表达式总是返回 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/
我是一名优秀的程序员,十分优秀!