首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从字符串值设置Android镜像

从字符串值设置Android镜像
EN

Stack Overflow用户
提问于 2010-11-30 19:03:27
回答 4查看 34.9K关注 0票数 19

目前,我正在Android应用程序中绘制一个PNG图像,如下所示:

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;

然而,这并不是很有效!

谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-30 19:10:13

有一种方法可以做到这一点,您可以使用Resources.getIdentifier() http://developer.android.com/reference/android/content/res/Resources.html按字符串检索资源ID

类似于:

int resourceId = Activity.getResources().getIdentifier("testimage", "drawable", "your.package.name");
票数 26
EN

Stack Overflow用户

发布于 2010-11-30 19:15:57

我使用的是:

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

"testimage“--例如,对应于testimage.jpg,即不要包含".jpg”

"drawable“-是资源类型,如:@drawable/testimage

检查Resources.getIdentifier(...)

票数 22
EN

Stack Overflow用户

发布于 2010-11-30 19:18:29

将您的图像放在assets/文件夹中并打开

image.setImageURI("file:///android_asset/" + nameFromDB);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4313007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档