情况如下:我有两个项目。假设LibraryProjectMainProjectMainProjectLibraryProject引用为库。

我在LibraryProject中有一个 Activity ,需要发现MainProject是否定义了特定的可绘制对象,比方说“logo.png”(认为徽标图像必须由每个`MainProject定义,而不是由LibraryProject定义。

如何在LibraryProject的一项 Activity 中,发现MainProjectres/drawable文件夹中是否有此图像?

显然,我尝试查看R.drawable.logo != 0(或它的变体),但是如您所知,由于该图像不在res/drawableLibraryProject文件夹中,因此该行将无法编译。

我也尝试过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/

10-09 02:26