¿Carpetas extraíbles en la carpeta res?

¿Cuál es la diferencia entre las tres carpetas dibujables en la carpeta res en la jerarquía del proyecto? Si tengo una imagen para poner en una carpeta, ¿en qué carpeta la coloqué?

Voy a suponer que “las tres carpetas drawable-ldpi ” son drawable-ldpi drawable-mdpi , drawable-mdpi , y drawable-hdpi . En ese caso, si se queda con todas esas carpetas, debe colocar una imagen en cada una, dimensionada para que coincida con la densidad de pantalla indicada. Esto se analiza en la documentación en línea , así como en esta publicación de blog . Aquí puede encontrar un conjunto de ejemplos de proyectos que muestran el uso de diferentes recursos dibujables basados ​​en la densidad de la pantalla.

Si recién está comenzando con el desarrollo de Android, puede deshacerse de estos tres directorios y crear un único directorio drawable , poniendo su imagen allí. Eventualmente, sin embargo, para una aplicación de calidad, querrá probar sus imágenes en diferentes dispositivos / emuladores con diferentes densidades de pantalla, y posiblemente tenga diferentes imágenes para cada densidad para mejorar el aspecto de su aplicación.

Aquí hay una referencia a las opciones de dispositivos múltiples .

Como dice @CommonsWare, no necesitas poner recursos en algo más que res / layout / o dibujable / pero si quieres que tu progtwig tenga una mejor experiencia en varios dispositivos con diferentes pantallas / densidad / idiomas, es posible que quieras considerar que tienes esa opción.

También es interesante, aunque no específico para las imágenes, cómo maneja Android los recursos. Les da un orden de carga, donde lo más específico significa que se elegirá por menos específico.

Por ejemplo, tiene tres valores String en strings.xml en su carpeta de valores. También tiene una cadena específica en una carpeta llamada values-en. Cuando Android abre su aplicación y su configuración regional coincide con en, cargará dos valores predeterminados de la carpeta de valores y la tercera cadena, más específica, de values-en. Si su configuración regional es “ru”, simplemente usará el valor predeterminado porque no tiene una carpeta “values-ru”.

Lo mismo es cierto para las imágenes. Si Android no puede encontrar imágenes para su variante de pantalla específica, utilizará los valores predeterminados de la carpeta dibujable.

En mi opinión, es una buena práctica tener valores / imágenes predeterminados en sus carpetas genéricas como valores / dibujables y valores / imágenes específicos en carpetas específicas. De esta forma, tanto los dispositivos actuales como los futuros tendrán al menos una forma de mostrar su contenido hasta que pueda proporcionar versiones específicas.