2
int i = 1;
String IMG = "pic";
IMG = IMG + Integer.toString(i);
i = i + 1;   

imageview1.setImageResource(R.drawable.IMG);

R.drawable.IMG 其中 IMG 是一个变量。

这是错误的。正确的方法是什么?我想将图像视图从 pic1 更改为 picN。


int[] images = new int[]{R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};

这更好,但是如何将矢量元素插入到图像视图中?对不起我的英语水平不好:)

4

3 回答 3

4

这可以通过使用来完成

int resourceId = getResources().getIdentifier("pic" + i, "drawable", getPackageName());

imageview1.setImageResource(resourceId);

这被证明是相当缓慢的。更好的选择可能是保留一组可绘制 ID 并循环遍历它。

int[] drawables = new int[] { R.drawable.pic1, R.drawable.pic2 };
于 2012-04-18T21:00:21.537 回答
0

标识应用中资源的标识符不是一系列序列号。创建您添加的图像数组,例如

int[] images = new int[]{R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};

并增加索引?

于 2012-04-18T21:00:05.967 回答
0

与@dymmeh 给出的解决方案类似,您也可以使用 Java Reflection 执行此操作,但我怀疑它也可能很慢。

int resId = R.drawable.getClass().getField("pic" + i).getInt(R.drawable);
于 2012-04-18T21:17:00.033 回答