48

可能重复:
Android - 从@drawable String 打开资源

首先对标题感到抱歉,但我不知道我可以设置什么标题。

好的,这是我的问题:

我将从外部数据库中提取一个字符串,例如:'picture0001'。

在 res/drawable 文件夹中,我有一张名为 picture0001 的图片。

我想将该图片设置为 ImageView 的背景(源)。

问题是,如何使用从外部数据库中获得的字符串查找这张图片。

非常感谢。

4

2 回答 2

179

是的,您可以使用Resources.getIdentifier().

Context context = imageView.getContext();
int id = context.getResources().getIdentifier("picture0001", "drawable", context.getPackageName());
imageView.setImageResource(id);

它效率不高,但它可以用来查找偶尔的资源。

于 2012-11-12T20:43:27.653 回答
4

你也可以像这样使用反射:

Class c = Class.forName("your.project.package.R");
Field f = c.getDeclaredField("drawable");
Class d = f.getDeclaringClass();
Field f2 = d.getDeclaredField("yourstring");
int resId = f2.getInt(null);
Drawable d = getResources().getDrawable(resId);

不过,最好的解决方案是 MarvinLabs 建议的。

于 2012-11-12T20:31:40.763 回答