android:为R.drawable.variableValue传递的变量

android:为R.drawable.variableValue传递的变量,android,Android,这条线对我有好处 我可以传递变量值而不是图标吗 比如,如果我有10个可绘制的图像,我想决定在运行时显示哪个图像 我可以通过一个变量传递这个值并像这样处理它吗 iv.setImageResource(R.drawable.icon); 您可以使用数组来定义可绘图项: String variableValue = imageName; iv.setImageResource(R.drawable.variableValue); 然后可以使用此数组在运行时设置映像: int

这条线对我有好处

我可以传递变量值而不是图标吗 比如,如果我有10个可绘制的图像,我想决定在运行时显示哪个图像 我可以通过一个变量传递这个值并像这样处理它吗

    iv.setImageResource(R.drawable.icon);

您可以使用数组来定义可绘图项:

    String variableValue = imageName;
    iv.setImageResource(R.drawable.variableValue);
然后可以使用此数组在运行时设置映像:

int[] images = new int[2];
images[0] = R.drawables.image1;
images[1] = R.drawables.image2;

其中,在这种情况下,是0指向数组的第一个图像,还是1指向数组的第二个图像。

否,它不会以这种方式工作

在您的第一行中,
图标
是生成的
静态最终
成员,属于
静态最终类R.drawable
,因此尝试将其连接起来,就像它是一个
字符串
会给您一个编译器错误

但是你可以试着使用

lv.setImageResource(images[i]);
其中
uri
是图像的uri,因此您可以在此处使用字符串值。
此外,根据API文档,使用<代码> SEMIGATEBITMAP将是一个更好的解决方案:您应该根据您的资源考虑它。 APIDocs:

iv.setImageURI(uri);
自:API级别1

将此ImageView的内容设置为 指定的Uri

这将进行位图读取和解码 在UI线程上,这可能会导致 打嗝。如果这是一个问题, 考虑使用 可设置图像可绘制(可绘制)或 设置图像位图(位图)和 而不是位图工厂

参数
uri
图像的uri

参考资料。getIdentifier()可以解决您的问题

public void setImageURI (Uri uri) 

工作得很有魅力。。。真可怕:)。。。感谢你让生活变得更轻松,而不是给已经很复杂的事情带来更多的复杂性(至少对我来说)。我认为它只适用于R.drawable而不是R.drawables
String variableValue = imageName;
iv.setImageResource(getResources().getIdentifier(variableValue, "drawable", getPackageName()));