Intereting Posts
Как сохранить отредактированный холст в качестве исходного изображения в андроиде ORM для Android SQLite и схемы базы данных Индикатор активности клиента Android Добавьте файлы .java в качестве исходных файлов java в Android Studio, чтобы удалить красный круг с помощью «J» на них. Поддерживает ли android * native * поддерживает SVG-изображение в качестве доступных ресурсов (значков)? Multi-Line EditText с кнопкой «Готово» Отображение символов Unicode в TextView Android Разрешение читать данные с SD-карты Активность не будет отображаться случайным образом, отображается только белый экран на Samsung Какой шаблон дизайна хорош для разработки приложений Android AVD не может быть создан. Ok отключен. Android MapView – автоматическое масштабирование до тех пор, пока не будут видны все ItemizedOverlay Как установить WebView как не полный экран? Невозможно разрешить метод startActivity () Как Auto Increment versionCode при экспорте приложений Android в Eclipse?

Установка изображений Android из строкового значения

В настоящее время я рисую изображение PNG в своем приложении Android так:

ImageView image = new ImageView(context); image.setImageDrawable(context.getResources().getDrawable(R.drawable.testimage)) 

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

Например, запись для БД:

 ID: Name: ImageName: - Test testimage 

Поэтому, когда я читаю эту запись, у меня есть строка со значением «testimage», и тогда я хочу установить R.drawable.testimage изображение в R.drawable.testimage .

Один из способов, которым я собирался это сделать, – это что-то вроде этого:

 int image = R.drawable.blank; // blank image // testimage.png is the image name from the database if(imageName.toString().equals("testimage.png")) image = R.drawable.testimage; else if(imageName.toString().equals("another.png")) image = R.drawable.another; else if(imageName.toString().equals("etc.png")) image = R.drawable.etc; 

Однако это не очень эффективно!

благодаря

Solutions Collecting From Web of "Установка изображений Android из строкового значения"

Существует способ для этого, вы можете восстановить идентификаторы ресурсов по строке, используя Resource.getIdentifier () http://developer.android.com/reference/android/content/res/Resources.html

Что-то вроде:

 int resourceId = Activity.getResources().getIdentifier("testimage", "drawable", "your.package.name"); 

Я использую:

 int resId = getResources().getIdentifier("testimage", "drawable", getPackageName()); image.setImageResource(resId); 

«Testimage» – соответствует, например, testimage.jpg, то есть не включать «.jpg»,

«Drawable» – это тип ресурса, например: @ drawable / testimage

Проверьте Resource.getIdentifier (…)

Поместите изображения в папку / ресурсы и откройте

 image.setImageURI("file:///android_asset/" + nameFromDB); 

String path = "sdcard / camera_app / name.jpg"; img.setImageDrawable (Drawable.createFromPath (путь));