我正在制作Android应用程序并且它有很多图像(大约200个)。我想根据用户选择的内容显示特定的图像。
选项的格式为String
,例如“USD”,“AUD”,“LKR”等。图像的格式为“usd.png”,“aud.png” ,“lkr.png”等。我已将图像放在/res/drawable-mdpi
文件夹中,我通常会像R.drawable.usd
那样访问它们,依此类推。
但在这种情况下,它[显然]很难做到(200多个图标)。那么无论如何我可以根据用户选择获得特定图像吗?例如,当用户选择“USD”时,我想获得名为“usd.png”的图像。有什么帮助吗?
提前致谢。
答案 0 :(得分:2)
如果你可以构造资源的名称,你可以调用getResources()。getIdentifier()来获取id,然后你可以从那里获取它。
答案 1 :(得分:2)
您可以使用Resources.getIdentifier和Resources.getDrawable?
的组合http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String,java.lang.String,java.lang.String)
http://developer.android.com/reference/android/content/res/Resources.html#getDrawable(int)
答案 2 :(得分:0)
使用Map
将String存储为键,图像名称作为值。例如:
Map<String, String> images = new HashMap<String, String>();
images.put("USD", "usd.png"); // store the reference
String usdImage = images.get("USD"); // retrieve the reference
答案 3 :(得分:0)
我不确定Android是否有按名称访问资源的方法,但是你总是可以使用反射在Java中做这些事情:
R.drawable.getClass().getField("nameGoesHere").get(null)
答案 4 :(得分:0)
Reflection API正在使用Android。这是所有Java开发人员都应该学习的东西。