如何使用R.Drawable获取图像列表

时间:2012-11-07 09:30:13

标签: android image url drawable

为了创建磁贴管理系统,我在res / drawable目录中有一包图像。如何动态加载该资源?

喜欢:F_16.0_0_112.jpg. ("F_"+zoom"+"._"+XCoord+"_"+YCoord".jpg")

是否有像getDrawable(String)这样的函数?

5 个答案:

答案 0 :(得分:5)

您可以通过以下方式使用其名称获取drawable:

int id = getResources().getIdentifier("name_of_resource", "id", getPackageName());

答案 1 :(得分:2)

你可以使用反射(不要忘记导入java.lang.reflect.Field)

/**
 * For example calling <code>getDrawableId("ic_launcher")</code> will return the same value as <code>R.drawable.ic_launcher;</code> 
 * 
 * @param name the name of the field
 * @return the drawable id
 */
public int getDrawableId(String name) {
    Class<?> c = R.drawable.class;
    Field f = null;
    int id = 0;

    try {
        f = R.drawable.class.getField(name);
        id = f.getInt(null);
    } catch (NoSuchFieldException e) {
        Log.i("Reflection", "Missing drawable " + name);
    } catch (IllegalAccessException e) {
        Log.i("Reflection", "Illegal access to field " + name);
    }

    return id;
}

答案 2 :(得分:2)

答案 3 :(得分:1)

不,为此使用android 资产文件夹。

请参阅更多详情here

答案 4 :(得分:-1)

不幸的是,您无法按名称加载资源。 id是生成的R类中的变量。在java中,您无法构建动态变量名。