如何在代码中没有 "direct description" 的情况下动态更改 mipmap 文件夹中的图像?
How to change images from mipmap folder dynamically without "direct description" in code?
我在 mipmap 文件夹中有很多不同大小的图像(超过 200 张),我需要在 ImageView 中动态设置图像...但是如何在我的代码中没有 "direct description" 的情况下执行此操作那个 R.mipmap.*int 文件?
mipmap 文件夹中有标志图像,我的对象有它自己的字符串字段 "flagCountry",它由两个字符组成。 mipmap 文件夹中的标志名称由相同的字符组成。所以,这是一个麻烦 - 如何从 flagCountry String 变量动态设置 setImageResource(R.mipmap.XXX)?
我在考虑 "reflection" 中的那个决定,但这怎么可能? )) 请帮忙
您可以使用 Resources.getIdentifier() 查找给定名称的资源的整数 ID。这就像 android 资源的反射。
int id = getResources().getIdentifier("XXX", "drawable", getPackageName());
或者类似的东西。这假设代码在 activity 中。然后你可以用那个id调用setImageResource(id)
。
正如 Doug 所说,您可以使用 Resources.getIdentifier() 来查找给定名称的资源的整数 ID。但是你说你想要来自 mipmap 的资源。所以做一个简单的改变。将单词 "drawable" 更改为 "mipmap",您将从 mipmap 获取图像。修改后的代码:
int id = getBaseContext()getResources().getIdentifier("XXX", "mipmap", getBaseContext().getPackageName());
image.setImageResource(id);
我在 mipmap 文件夹中有很多不同大小的图像(超过 200 张),我需要在 ImageView 中动态设置图像...但是如何在我的代码中没有 "direct description" 的情况下执行此操作那个 R.mipmap.*int 文件? mipmap 文件夹中有标志图像,我的对象有它自己的字符串字段 "flagCountry",它由两个字符组成。 mipmap 文件夹中的标志名称由相同的字符组成。所以,这是一个麻烦 - 如何从 flagCountry String 变量动态设置 setImageResource(R.mipmap.XXX)? 我在考虑 "reflection" 中的那个决定,但这怎么可能? )) 请帮忙
您可以使用 Resources.getIdentifier() 查找给定名称的资源的整数 ID。这就像 android 资源的反射。
int id = getResources().getIdentifier("XXX", "drawable", getPackageName());
或者类似的东西。这假设代码在 activity 中。然后你可以用那个id调用setImageResource(id)
。
正如 Doug 所说,您可以使用 Resources.getIdentifier() 来查找给定名称的资源的整数 ID。但是你说你想要来自 mipmap 的资源。所以做一个简单的改变。将单词 "drawable" 更改为 "mipmap",您将从 mipmap 获取图像。修改后的代码:
int id = getBaseContext()getResources().getIdentifier("XXX", "mipmap", getBaseContext().getPackageName());
image.setImageResource(id);