首先抱歉标题,但我不确切知道我可以设置什么标题。
好的,这是我的问题:
我将从外部数据库中读取一个字符串,例如:'picture0001'。
在文件夹res / drawable中我有一张名为picture0001的图片。
我想将该图片设置为ImageView的背景(来源)。
问题是,如何使用从外部数据库获得的字符串来查找此图片。
非常感谢你。
答案 0 :(得分:149)
是的,您可以使用Resources.getIdentifier()
按名称查找。
Context context = imageView.getContext();
int id = context.getResources().getIdentifier("picture0001", "drawable", context.getPackageName());
imageView.setImageResource(id);
效率不高,但它可以查找偶尔的资源。
答案 1 :(得分:5)
你也可以使用这样的反射:
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所建议的。