所以我有一个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文件吗?
答案 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"));