Android – открыть ресурс из @drawable String

У меня есть:

 Строка uri = "@ drawable / myresource.png";

Как загрузить его в ImageView? this.setImageDrawable?

Если вам действительно нужно работать со строкой, попробуйте что-то вроде этого:

private void showImage() { String uri = "drawable/icon"; // int imageResource = R.drawable.icon; int imageResource = getResources().getIdentifier(uri, null, getPackageName()); ImageView imageView = (ImageView) findViewById(R.id.myImageView); Drawable image = getResources().getDrawable(imageResource); imageView.setImageDrawable(image); } 

Else, я бы рекомендовал вам работать с R. *:

 int imageResource = R.drawable.icon; Drawable image = getResources().getDrawable(imageResource); 

Во-первых, не делайте этого, поскольку этот синтаксис @drawable имеет смысла в Java-коде. Используйте int resourceId=R.drawable.myresource .

Если по какой-то причине вы getIdentifier() имя ресурса и вам нужен идентификатор целого числа, используйте getIdentifier() в объекте Resources .

вы также можете добавить свою собственную переменную .. в моем случае scene.name между i follow @pfleidi отвечает. c означает контекст.

 String uri = "drawable/" + scene.name; int imageResource = c.getResources().getIdentifier(uri, null, c.getPackageName()); imageList.setImageResource(imageResource); 

С давних времен, но моим фаворитом является использование Контекста:

 context.getApplicationContext().getResources().getDrawable(R.drawable.placeholder_image) 

где placeholder_image – это идентификатор ресурса. В вашем случае, R.drawable.myresource .

Контекст может быть активностью или приложением. Практически везде, где вы находитесь, есть ссылка на контекст, который вы можете использовать для получения контекста приложения.

В случае, если кто-то еще сталкивается с проблемой, которую я имел, я загружал имя изображения из JSON, а затем мне нужно было получить идентификатор. Второй параметр getIdentifier может быть установлен на «drawable». Это небольшое отклонение от ответа @ alia-ramli-ramli …

 String uri = details.getString("circle").toLowerCase(); int imageResource = context.getResources().getIdentifier(uri, "drawable", context.getPackageName()); Drawable image = context.getResources().getDrawable(imageResource); viewHolder.unit_circle.setImageDrawable(image); 

У меня была та же проблема с … устаревшим и т. Д. И т. Д. Я решил таким образом с минимальным API 14 в порядке.

 ... ... ImageView imgPoster = viewCache.getImgPoster(resource); String uri = "drawable/" + film.getPoster(); int imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName()); Drawable image = ContextCompat.getDrawable(context, imageResource); imgPoster.setImageDrawable(image); return convertView; ... ... 
  • Android Studio, неожиданно возникла проблема с драйвером GPU при запуске эмулятора
  • google-services.json для разных продуктовFlavors
  • выбор контакта из автозаполнения textview
  • Предупреждение Google Play и OpenSSL
  • MAT (Eclipse Memory Analyzer) - как просматривать растровые изображения из дампа памяти
  • не может получить folderId, который я только что создал на Google Диске
  • Google Play на Android 4.0 эмулятор
  • Хостинг исполняемого файла в приложении Android
  • Рисование на canvasе и сохранение изображения
  • Ошибка при создании apk - «Несколько файлов dex определяют Lcom / google / ads / Ad»
  • Делают ли Geofences активными в android после перезагрузки устройства?
  • Давайте будем гением компьютера.