因此,我有一个数据库,用于存储图像路径的字符串值。我的目标是使用与图像名称匹配的字符串显示相应的图像,但是我很难。

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文件吗?

最佳答案

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

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

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


在您的示例中,从您的活动中,您只需调用:

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

10-08 12:04