2013-12-06 2 views
2

Так что у меня есть db, который хранит строковые значения пути к изображению. Моя цель - показать соответствующее изображение, используя строку, которая соответствует имени изображения, но я сильно затрудняюсь.Получите drawable используя путь

Movie currentMovie = values.get(position); 

ImageView image = (ImageView)itemView.findViewById(R.id.movieThumbnail); 

String path = "@drawable/" + currentMovie.getThumb(); 

int imageResource = getResources().getIdentifier(path, "drawable", getPackageName()); 

Drawable thumbnail = getResources().getDrawable(imageResource); 

image.setImageDrawable(thumbnail); 

К сожалению, imageResource всегда 0, и я получаю источник не найден. CurrentMovie, getThumb() возвращает текст «test.png», а под res \ drawable-hdpi - файл test.png. Как я могу ссылаться на этот образ? мне нужен xml-файл?

+0

Строка = "@ drawable /" + currentMovie.getThumb(); – Dimentar

+0

@Dimentar, похоже, ничего не меняет – Centimane

ответ

2

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

Drawable будет загружаться из какой плотности папки используется по Context вы передаете в

Drawable getMyDrawable(Context c,String ImageName) { 
     return c.getResources().getDrawable(c.getResources().getIdentifier(ImageName, "drawable", c.getPackageName())); 
} 

В вашем примере, от вашей деятельности вы бы просто позвонить:. Путь

image.setImageDrawable(getMyDrawable(this,"test")); 
Смежные вопросы