2016-03-05 76 views
1

我有很多图像(超过200)与mipmap文件夹中的各种大小,我需要在ImageView中动态设置图像...但如何做到这一点没有“直接描述”在我的代码R.mipmap 。* int文件? mipmap文件夹中有标志图像,我的对象有自己的字符串字段“flagCountry”,它由两个字符组成。 mipmap文件夹中的标志名称由相同的字符组成。所以,这是一个麻烦 - 如何从flagCountry字符串变量动态设置setImageResource(R.mipmap.XXX)? 我在思考“反思”中的决定,但它怎么可能? ))请帮助如何在没有代码中的“直接描述”的情况下动态更改mipmap文件夹中的图像?

+0

检查此链接可能有助于[链接](http://stackoverflow.com/questions/12274891/dynamically-getting-all-image-resource-id-in-an-array) –

回答

1

您可以使用Resources.getIdentifier()来找到给定名称的资源的整数ID。这就像是Android资源的反射。

int id = getResources().getIdentifier("XXX", "drawable", getPackageName()); 

或沿着这些线。这假定代码在一个活动中。然后你可以拨打setImageResource(id)这个ID。

+0

谢谢你,兄弟!你帮了我很多! )) – user3352926

+0

你好,我不能用它与mipmap。 – kemdo

1

正如Doug所说的,您可以使用Resources.getIdentifier()为给定名称的资源找到整数ID。但是你说你想从mipmap获得资源。所以做一个简单的改变。将单词“drawable”更改为“mipmap”,然后从mipmap中获取图像。更改后的代码:

int id = getBaseContext()getResources().getIdentifier("XXX", "mipmap", getBaseContext().getPackageName()); 
image.setImageResource(id); 
相关问题