2011-12-14 4 views
1

У меня есть куча изображений с именами, 1.jpg, 2.jpg ... и 56.jpg. У меня также есть значение _id в переменной, зависящей от того, какой элемент был выбран из предыдущего действия списка. У меня есть следующий код для отображения изображения.Дисплей изображения Android динамически

ImageView image = (ImageView) findViewById(R.id.headerimage); 
image.setImageResource(R.drawable.image1); 

То, что я хотел бы сделать это динамически отображать изображение, которое соответствует значению _ID, например .. что-то вроде этого?

ImageView image = (ImageView) findViewById(R.id.headerimage); 
image.setImageResource(R.drawable.myID + ".jpg"); 

Как это сделать?

Cheers,

Mike.

ответ

2

Да, вы можете это сделать.

Просто используйте Resouces.getIdentifier(). Имейте в виду, что эта реализация медленнее, что с помощью идентификаторов и всегда проверяйте, если RESOURCEID не 0 (это означало бы ресурс, который вы просили не выходит

. Пример:

View view = //... 
int number = //...      
int resId = getIdentifier("files_"+number, "drawable", "com.my.project.package"); 
view.setBackgroundResource(resId); 
+0

Спасибо, Педро, он отлично работал! И Сандер, твой пример работал бы два, и мне нравится боковое мышление, но у меня 150 изображений. Приветствия, –

0

Насколько я знаю, вы этого не делаете. Некоторое время назад у меня была аналогичная проблема, вы можете найти ее. here. По какой-то причине Android, похоже, не нравится, если вы пытаетесь динамически ссылаться на имена ресурсов. Я в конечном итоге исправил это, поставив все ресурсы, которые я динамически хотел ссылаться в массиве.