2012-04-18 3 views
2
int i = 1; 
String IMG = "pic"; 
IMG = IMG + Integer.toString(i); 
i = i + 1; 

imageview1.setImageResource(R.drawable.IMG); 

R.drawable.IMG где IMG - переменная.setImageResource

Это неправильно. Каким будет правильный путь? Я хочу изменить изображение с pic1 на picN.


INT [] изображения = новый INT [] {R.drawable.pic1, R.drawable.pic2, R.drawable.pic3};

Это лучше, но как я могу вставить векторный элемент в изображение? Извините за мой плохой уровень английского языка :)

ответ

0

Идентификаторы, которые идентифицируют ресурсы вашего приложения, не являются последовательностью последовательных чисел. Создайте массив добавленных изображений, например.

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

и прирастить индекс вместо этого?

+0

imageview1.setImageResource (изображения [i]); ???? –

4

Это может быть достигнуто с помощью

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

imageview1.setImageResource(resourceId); 

Это оказалось довольно медленным. Лучший вариант может быть, чтобы сохранить массив ваших рисуемых идентификаторов и цикл через это ..

int[] drawables = new int[] { R.drawable.pic1, R.drawable.pic2 }; 
+0

Как вставить элемент вектора в изображение? –

+0

imageview1.setImageResource (drawable [i]); – dymmeh

0

Аналогично решение заданного @dymmeh Вы можете сделать это также с Java Reflection, но у меня есть подозрение, что может быть слишком медленным.

int resId = R.drawable.getClass().getField("pic" + i).getInt(R.drawable); 
Смежные вопросы