iv.setImageResource(R.drawable.icon);
此行变量是我安卓:通过对R.drawable.variableValue
我可以通过一个变量值,而不是图标 工作好样的,如果我有10个绘制的图像,我想决定在运行时要显示的图像 我可以通过一个变量传递的价值,像
String variableValue = imageName;
iv.setImageResource(R.drawable.variableValue);
iv.setImageResource(R.drawable.icon);
此行变量是我安卓:通过对R.drawable.variableValue
我可以通过一个变量值,而不是图标 工作好样的,如果我有10个绘制的图像,我想决定在运行时要显示的图像 我可以通过一个变量传递的价值,像
String variableValue = imageName;
iv.setImageResource(R.drawable.variableValue);
解决它你可以使用一个数组来定义可绘:
int[] images = new int[2];
images[0] = R.drawables.image1;
images[1] = R.drawables.image2;
然后可以使用此阵列在运行时设置一个图像:
lv.setImageResource(images[i]);
哪里是在这种情况下是0至点到第一图像或1至点到所述阵列的所述第二图像。
不,它不会那样工作。
在您的第一线icon
是static final class R.drawable
的产生static final
构件,从而试图串连起来就像是一个String
会给你一个编译器错误。
但是你可以尝试使用
iv.setImageURI(uri);
其中uri
是URI到你的形象,所以你可以在这里使用的字符串值。
此外,根据api文档,使用setImageBitmap
将是更好的解决方案:您应该根据您的资源来考虑它。
APIDocs:
public void setImageURI (Uri uri)
自:API等级1
设置此的ImageView来 指定的URI的内容。
这会在UI线程上执行位图读取和解码 ,这可能会导致 延迟打嗝。如果这是一个问题, 请考虑使用 setImageDrawable(Drawable)或 setImageBitmap(Bitmap)和 来代替BitmapFactory。
参数
uri
图像)的URI
Resources.getIdentifier(能解决你的问题。
String variableValue = imageName;
iv.setImageResource(getResources().getIdentifier(variableValue, "drawable", getPackageName()));
谢谢你为我工作。 – 2014-06-22 05:36:51
工作就像魅力......要命:) ... 感谢您使我们的生活更轻松,而带来更多的并发症弄成这已经是复杂的(ATLEAST对我来说)。 – 2011-04-24 04:04:52
对我来说,它只适用于R.drawables而不是R.drawables – 2017-10-15 00:48:44