У меня на сцене есть 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 объектом безрезультатно ...
Если вы хотите разрешить ввод открытого текста, вам придется либо использовать необработанные ресурсы , чтобы получать их по имени строки (см. Сноску на этой странице), либо использовать магические Отражение Java для получения поля класса R по имени. В качестве альтернативы вы можете сохранить HashMap строк для целочисленных значений R.drawable и искать его, но тогда вам придется поддерживать эту хэш-карту.
Если вы хотите, чтобы он отображал только изображения, которые вы загрузили в свои drawables, вы можете использовать Spinner
, где id для элемента установлен как ресурс для Drawable
. Это будет проще с вашей стороны и удобнее для пользователя.