如何从一个string设置imageView的图像?

我有一个res / drawable-mdpi目录中的条目和一些位图文件的列表。 我试图通过生成一个pathstring和使用位图工厂加载对应于从列表中select的string值的图像。 问题是我不认为我的path是正确的,因为位图总是为空,即使是默认的图像。

String name = entries.get(position); String img = "res/drawable/logo_" + name.toLowerCase() + ".png"; // create the file name icon.setScaleType(ImageView.ScaleType.CENTER_CROP); // check to see if the file exists File file = new File(img); if (file.exists()){ bm = BitmapFactory.decodeFile(img); } else{// use the default icon bm = BitmapFactory.decodeFile("logo_default.png"); } // set the image and text icon.setImageBitmap(bm); 

res目录是否被复制到设备上? 我应该使用什么正确的path,还是应该以不同的方式来解决这个问题?

谢谢

Solutions Collecting From Web of "如何从一个string设置imageView的图像?"

如果你在可绘制的文件夹中有图像,那么你的方法是错误的。

尝试这样的事情

 Resources res = getResources(); String mDrawableName = "logo_default"; int resID = res.getIdentifier(mDrawableName , "drawable", getPackageName()); Drawable drawable = res.getDrawable(resID ); icon.setImageDrawable(drawable ); 

不需要使用getDrawable()就可以直接使用资源id

String mDrawableName = "myimageName"; int resID = res.getIdentifier(mDrawableName , "drawable", getPackageName()); imgView.setImageResource(resID);