How to get a Resource from a project inside a library project

android, android-resources

Solution

You can try this: (but remember, the context is always "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;
}

Problem

Here is the situation: I Have two projects. Let's say a `LibraryProject` and a `MainProject`. The `MainProject` references the `LibraryProject` as a library. I have one activity in the `LibraryProject` that needs to discover if the `MainProject` have defined a specific drawable, let's say "logo.png" (Think that the logo image must be defined by each `MainProject, and not by the LibraryProject. How to, in one activity of the `LibraryProject`, discover if the `MainProject` has this image in the `res/drawable` folder? Obviouslly I have tried to see if `R.drawable.logo != 0` (or variation of it), but as you know, this line will not compile, since the image is not in the `res/drawable` folder of the `LibraryProject`. I also tried `getResources().getIdentifier("logo", "drawable", null) != 0` but this boolean expression is always returning false, since the `.getIdentifier()` always returns zero. Any idea?

Original source