如何从库项目中的项目获取资源

Ren*_*tti 5 android android-resources

情况如下:我有两个项目.让我们说a LibraryProject和a MainProject.该MainProject引用LibraryProject作为库.

我有一个活动LibraryProject,需要发现是否MainProject定义了一个特定的drawable,让我们说"logo.png"(认为徽标图像必须由每个`MainProject定义,而不是由LibraryProject定义.

如何在一个活动中LibraryProject发现文件夹中是否MainProject有此图像res/drawable

显然我试图看看是否 R.drawable.logo != 0(或它的变化),但是如你所知,这行不会编译,因为图像不在res/drawable文件夹中LibraryProject.

我也试过getResources().getIdentifier("logo", "drawable", null) != 0但是这个布尔表达式总是返回false,因为它.getIdentifier()总是返回零.

任何的想法?

Gui*_*ido 7

你可以试试这个:(但请记住,上下文总是"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;
}
Run Code Online (Sandbox Code Playgroud)