2011-09-26 14 views
6

En mi aplicación tengo muchas imágenes que he agrupado en la carpeta debajo de res/dibujable. Pero Android no me permitió acceder a ellos a través de "R". ¿Hay alguna manera de acceder a esas carpetas?Cómo acceder a res/dibujable/"carpeta"

Este es el código que estoy usando.

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

Marqué la parte a la que no puedo acceder.

Thx por adelantado

Safari

+1

Creo que debe ser ** importación com.android.R; ** o alguna otra cosa R importados en su archivo simplemente eliminarlo y construir su proyecto de nuevo, puede estar refiriendo al archivo R.java incorrecto, por lo que se genera una referencia ....... – Hanry

+0

posible duplicación de [¿Puede el directorio dibujable de Android contener subdirectorios?] (http://stackoverflow.com/questions/1077357/can) -the-android-drawable-directory-contiene-subdirectories) – user2864740

Respuesta

18

No, Android no permite subcarpetas en /res/drawable: Can the Android drawable directory contain subdirectories?

No obstante, usted puede, añadir todos los archivos de imagen bajo /drawable y luego acceder a ellos mediante programación a través de:

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

Dónde drawableName es un nombre del archivo estirable, es decir myimage si el archivo de imagen es myimage.jpg.

El código de arriba obtendrá un recurso de imagen con id .

+0

Si mi foto se llama "angel.gif" tengo que cambiar el nombre dibujable en "ángel" ¿no? Gracias por tu ayuda! – safari

+0

Simplemente marque esta pregunta también: http://stackoverflow.com/questions/4930398/can-the-android-layout-folder-contain-subfolders –

1

No se pueden crear carpetas en res/DRAWABLE el sistema no reconoce esos.

+0

+1, sí, exactamente estoy totalmente de acuerdo contigo. @ Safari, solo revisa este enlace: http://stackoverflow.com/questions/4930398/can-the -un droide-layout-folder-contain-subfolders –

0

que necesita para guardar la imagen primero y luego hacer un xml para ellos para que pueda acceder a él a través R.your_pics

+0

¿Tiene un examen para eso? Sería demasiado genial! – safari

2

R.drawable.xxx es solo una referencia que el SDK de Android genera en su archivo R.java. Está tratando de crear una subcarpeta en su carpeta de rescates. El SDK no puede generar una referencia a cualquiera de sus subcarpetas, debe colocarlo en las carpetas predefinidas drawable-hdpi, -ldpi y -mdpi. Si no sabes cómo funciona esto. Resumiré Android se ejecuta en muchos dispositivos diferentes con muchas resoluciones de pantalla diferentes. Con estas tres carpetas, puede tener la misma imagen en tres resoluciones y, dependiendo del dispositivo en el que esté ejecutando su aplicación, se usará una de estas tres carpetas. Puede leer más aquí: http://developer.android.com/guide/practices/screens_support.html