如何动态更改mipmap文件夹中的图像,而无需"直接描述"在代码?

时间:2016-03-05 07:25:11

标签: android mipmaps

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

2 个答案:

答案 0 :(得分:2)

您可以使用Resources.getIdentifier()查找给定名称的资源的整数ID。它就像是对android资源的反思。

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

或者那些东西。这假设代码处于活动中。然后,您可以使用该ID调用setImageResource(id)

答案 1 :(得分:1)

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

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