2010-11-30 98 views
18

目前我在我的Android应用程序绘制PNG图像,像这样:设置从字符串值的Android图像

ImageView image = new ImageView(context); 
image.setImageDrawable(context.getResources().getDrawable(R.drawable.testimage)) 

如果我有一个数据库映像名称的列表,有没有办法来设置上面使用图像名称绘制?我已经有了通过数据库的代码,我只是想根据从这里获取的值来绘制图像。

例如,对于一个数据库中的记录:

ID: Name: ImageName: 
-  Test  testimage 

所以,当我在读这条记录,我有一个的“testimage”的值的字符串,然后我想设置的图像可绘制到R.drawable.testimage

一个办法,我想这样做,将是这样的:

int image = R.drawable.blank; // blank image 

// testimage.png is the image name from the database 
if(imageName.toString().equals("testimage.png")) 
    image = R.drawable.testimage; 
else if(imageName.toString().equals("another.png")) 
    image = R.drawable.another; 
else if(imageName.toString().equals("etc.png")) 
    image = R.drawable.etc; 

然而,这是不是很有效!

感谢

回答

21

我使用:

int resId = getResources().getIdentifier("testimage", "drawable", getPackageName()); 
image.setImageResource(resId); 

“testimage” - 对应于例如t estimage.jpg,即不包括 “.JPG”

“绘制” - 是资源的类型,像:@绘制/ testimage

入住的资产/文件夹Resources.getIdentifier(...)

+0

int resId = getResources()。getIdentifier(“testimage”,“drawable”,mainActivity.getPackageName()); Bitmap image = BitmapFactory.decodeResource(getResources(),resId); – dinesh707 2012-08-27 13:05:10

+0

Boo是啊!这很完美。 – LargeGlasses 2014-10-06 03:25:49

0

把你的图像和打开

image.setImageURI("file:///android_asset/" + nameFromDB); 
-2

String path =“sdcard/camera_app/name.jpg”; img.setImageDrawable(Drawable.createFromPath(path));