因此,我有一个数据库,用于存储图像路径的字符串值。我的目标是使用与图像名称匹配的字符串显示相应的图像,但是我很难。
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"));