установить источник ImageView динамически Android - PullRequest
9 голосов
/ 19 августа 2010

У меня есть ImageView на моей сцене, который я хотел бы установить в качестве источника динамически на основе пользовательского ввода.

Допустим, у меня есть 4 изображения в моей папке для рисования: aaa.png, bbb.png,ccc.png и ddd.png.

Когда мое приложение загружается, я устанавливаю изображение на: aaa.png

myImageView.setImageResource(R.drawable.aaa);

Теперь у меня есть EditText, где пользователь может ввести bbb иЯ хочу изменить источник изображения на bbb.png, или пользователь вводит ccc, изменить источник на ccc.png и т. Д.

как я могу динамически установить параметр в setImageResource ()?Я попытался поиграть с объектом Drawable безрезультатно ...

Ответы [ 3 ]

2 голосов
/ 19 августа 2010

Если вы хотите разрешить ввод открытого текста, вам придется либо использовать необработанные ресурсы , чтобы получить их по имени строки (см. Sidenote на этой странице), либо использовать магическую Javaотражение для извлечения поля класса R по имени.В качестве альтернативы, вы можете сохранить HashMap строк в целочисленные значения R.drawable и посмотреть его, но тогда вам придется поддерживать эту хэш-карту.

0 голосов
/ 08 июля 2013

Если вы хотите использовать отражения, взгляните на код ниже:

 R.drawable ourRID = new R.drawable();
                        Field photoNameField = ourRID.getClass().getField("aaa");
myImageView.setImageResource(photoNameField.getInt(ourRID));

Надеюсь, это поможет.

0 голосов
/ 19 августа 2010

Если вы хотите, чтобы он отображал только изображения, которые вы загрузили в свои чертежи, вы можете использовать Spinner, где идентификатор элемента установлен как ресурс для Drawable. Это будет проще с вашей стороны и проще для пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...