Как получить доступ к res/drawable/folder

В моем приложении у меня есть много изображений, которые я сгруппировал в папке res/drawable. Но Android не позволяет мне получить к ним доступ через «R». Есть ли способ получить доступ к этим папкам.

Это код, который я использую для.

    ImageView iv = new ImageView(conext);
    iv.setImageResource(R.drawable.**smiley.666**);

Я отметил часть, к которой я не могу получить доступ.

Спасибо заранее

сафари


person safari    schedule 26.09.2011    source источник
comment
Я думаю, что должен быть import com.android.R; или какой-то другой R, импортированный в ваш файл, просто удалите его и снова создайте свой проект, возможно, он ссылается на неправильный файл R.java, поэтому создается ссылка. ......   -  person Hanry    schedule 26.09.2011
comment
возможный дубликат Может ли каталог Android drawable содержать подкаталоги?   -  person user2864740    schedule 14.05.2014


Ответы (5)


Нет, Android не разрешает вложенные папки в /res/drawable: Может ли каталог Android drawable содержать подкаталоги?

Однако вы можете добавить все файлы изображений в /drawable, а затем получить к ним программный доступ через:

int drawableID = context.getResources().getIdentifier("drawableName", "drawable", getPackageName());
iv.setImageResource(drawableID);

Где drawableName — это имя файла для рисования, т. е. myimage, если файл изображения myimage.jpg.

Приведенный выше код получит ресурс изображения с идентификатором R.drawable.drawableName.

person Peter Knego    schedule 26.09.2011
comment
Если моя картинка называется angel.gif, мне нужно изменить drawableName на angel, верно? Спасибо за вашу помощь! - person safari; 26.09.2011
comment
Просто проверьте этот вопрос также: .com/questions/4930398/ - person Paresh Mayani; 26.09.2011

R.drawable.xxx — это просто ссылка, которую Android SDK создает в вашем файле R.java. Вы пытаетесь создать подпапку в папке res. SDK не может генерировать ссылку ни на одну из ваших подпапок, вы должны поместить ее в предопределенные папки drawable-hdpi, -ldpi и -mdpi. Если вы не знаете, как это работает. Я подытожу. Android работает на множестве разных устройств с разными разрешениями экрана. С этими тремя папками вы можете иметь одно и то же изображение в трех разрешениях, и в зависимости от устройства, на котором вы запускаете свое приложение, будет использоваться одна из этих трех папок. Вы можете прочитать больше здесь: http://developer.android.com/guide/practices/screens_support.html

person Finn Larsen    schedule 26.09.2011

Вы не можете создавать папки в res/drawable, система их не распознает.

person Thizzer    schedule 26.09.2011
comment
+1, да, я полностью с вами согласен. @Safari, просто проверьте эту ссылку: stackoverflow.com/questions/4930398/ - person Paresh Mayani; 26.09.2011

вам нужно сначала сохранить изображение, а затем создать для него xml, чтобы вы могли получить к нему доступ через R.your_pics

person htmlove    schedule 26.09.2011
comment
У вас есть пример для этого? Было бы слишком здорово! - person safari; 26.09.2011

context.getResources().getDrawable(R.drawable.progressbar1);

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

person Community    schedule 22.06.2014