2010-10-11 2 views
1

Есть ли возможность установить фоновое изображение динамически ?!Установить изображение/источник фона динамически

Я пытаюсь объяснить, что я имею в виду.

String picVariable = getPictureFromServer(); 

ImageView image = (ImageView)v.findViewById(R.id.dynamic_image); 

// I know, that doesn't work, but that's the way I looking for 
image.setBackgroundResource(picVariable); 

Спасибо заранее,

Стена

Пс. Я также читал this article. В одном ответе было предложено использовать java-отражение для получения поля класса R по имени. Но я никогда не использовал reflextion раньше. Пример будет очень полезен

+0

Что 'getPictureFromServer' вернуться? –

+0

Что-то вроде «abc.png», и есть abc.png в drawables – Tima

ответ

5

Иногда я должен занять немного больше времени для поиска :)

Я нашел ответ чтения this article, и она отлично работает для меня:

// The server says, it should be *.png 
String picName = getPictureFromServer(); 
picName = picName.replace(".png", ""); 

Resources r = getResources(); 
int picId = r.getIdentifier(picName, "drawable", "com.mypackage.myapp"); 

ImageView image = (ImageView)v.findViewById(R.id.dynamic_image); 
image.setBackgroundResource(picId); 
0

ImageView не имеет фона, но для другого виджета (например, Button) вы должны использовать setBackgroundResource (int).

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

+0

Это не мой проект, я просто чищу ошибки и добавляю новую функциональность. И есть фон для изображений, но мне кажется очень странным, а также использовать в образе просмотра фона :) – Tima

Смежные вопросы