使用路径获取drawable

时间:2013-12-06 14:32:21

标签: android android-resources

所以我有一个db来存储图像路径的字符串值。我的目标是使用与图像名称匹配的字符串显示相应的图像,但我很难用它。

Movie currentMovie = values.get(position);

ImageView image = (ImageView)itemView.findViewById(R.id.movieThumbnail);

String path = "@drawable/" + currentMovie.getThumb();

int imageResource = getResources().getIdentifier(path, "drawable", getPackageName());

Drawable thumbnail = getResources().getDrawable(imageResource);

image.setImageDrawable(thumbnail);

遗憾的是,imageResource始终为0,我找不到源代码。 currentMovie,getThumb()返回文本“test.png”,res \ drawable-hdpi下面是test.png文件。我该如何参考这张图片?我需要一个xml文件吗?

1 个答案:

答案 0 :(得分:2)

当您只有图像名称时,使用此简单函数返回drawable。您不需要包含drawable文件夹或图像文件扩展名的完整路径。

Drawable将从您传入的Context正在使用的密度文件夹中加载。

Drawable getMyDrawable(Context c,String ImageName) {
        return c.getResources().getDrawable(c.getResources().getIdentifier(ImageName, "drawable", c.getPackageName()));
}

在您的示例中,您只需致电:

image.setImageDrawable(getMyDrawable(this,"test"));