Android 如何在没有代码中的“直接描述”的情况下动态更改mipmap文件夹中的图像?

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

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

您可以使用查找给定资源名称的整数id。这就像android资源的反射

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

或者类似的东西。这假定代码位于活动中。然后,您可以使用该id调用setImageResourceid。

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

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

检查此链接可能有助于您好,我无法将其与mipmap一起使用。