imagen - Versiones más recientes de Android Studio y solo dos directorios dibujables: drawable y drawable-v21
shape size android (1)
Gracias a todos los que intentaron ayudar. Me ayudaste a llegar a la respuesta final, pero ninguna solución era correcta. @ user3137702 fue probablemente el más cercano, ya que está relacionado con todo el movimiento a vectores / SVG. No pude encontrar una respuesta definitiva, como algo directamente de Google (aunque me imagino que está ahí), pero de lo que he recopilado de un montón de artículos, probablemente haya una razón por la que están haciendo esto.
Para empezar, parece que esto comenzó en Android Studio 1.4. Estoy en 1.5 en este momento. Parece que Android se está moviendo en la dirección de que ya no es necesario que usted cree sus propias carpetas de densidad (es decir, mdpi, hdpi, etc.) para dibujar (los mipmaps son diferentes, así que no confunda eso con lo que estoy hablando) . A partir de Android Studio 1.4, tomará los SVG que coloque en la carpeta de dibujo normal (como en la carpeta v21), los convertirá en PNG y los colocará en carpetas de densidad generadas automáticamente durante la secuencia de compilación (por lo tanto, Gradle hace esto por usted, esencialmente) para todas las versiones anteriores a API 21. Para las versiones 21 y superiores, SVG se admite de manera diferente, lo cual es un tema completamente distinto. ¡¡¡Pero esto esencialmente hace que el soporte SVG sea compatible con versiones anteriores hasta API 1 !!!
SIN EMBARGO, hay una gran captura. Esta conversión de SVG no siempre es tan exitosa como podría esperarse. Solo admite un subconjunto de archivos SVG, por lo que, dependiendo de cómo lo guarde (es decir, qué configuración se aplica al guardar), es posible que no se muestre correctamente. Incluso las configuraciones de uso común, como los degradados y los rellenos de patrones, las referencias IRI locales y las transformaciones NO son compatibles (todavía) Si está trabajando con archivos SVG que no generó, es probable que tenga problemas para importarlos. Si tú o alguien con quien trabajas los genera directamente, es posible que tengas que experimentar con la forma en que guardas los archivos, y debes probar las compilaciones a menudo en versiones anteriores de Android para asegurarte de que resultaron como se esperaba.
Para importar SVG en Android Studio 1.4+, siga estos sencillos pasos:
- Haga clic derecho en la carpeta res / drawable
- Seleccione "Nuevo"
- Seleccione "Vector Asset"
- En este punto, puede seleccionar un "Icono de material", que funciona realmente bien, y hay un montón de hermosos iconos "gratuitos" que puede seleccionar. Para los desarrolladores independientes, sin soporte de diseño de iconos, ¡esto es bueno!
- O bien, puede seleccionar "Archivo local SVG"
- Luego elija un SVG de cualquiera de las opciones con la opción "elegir". ADVERTENCIA: aquí es donde puede fallar, si el SVG que importa no se guarda correctamente.
- Pulsa "siguiente"
- Verifique que esté guardando en el lugar correcto y luego haga clic en "Finalizar"
- En este punto, puede hacer referencia con: android: icon = "@ drawable / ic_imagename" (usando su nombre de imagen en lugar de ic_imagename, por supuesto)
La respuesta de @ CommonsWare fue muy útil para llevar a la solución correcta, pero por lo que vi, generando varias variaciones de nuevos proyectos a partir de diferentes configuraciones de compatibilidad de versión y plantilla, no había ninguna manera de hacer que las carpetas de densidad anteriores se generaran automáticamente. . Definitivamente hay más cosas aquí que solo una selección de versión de plantilla diferente. Pero como dijo, dependiendo de la plantilla / versión que seleccione, puede terminar con un conjunto diferente de esos dos tipos de carpetas dibujables. Pero específico a mi pregunta, Android Studio parece estar poniendo énfasis en este nuevo enfoque de no crear sus propias carpetas de densidad dibujables individuales en absoluto.
Es genial, imo, pero todavía necesita algo de trabajo. En términos prácticos, es probable que aún tenga que agregar las carpetas de densidad dibujable para admitir todas las imágenes con las que trabajo, hasta que este mecanismo sea un poco más compatible con todos los tipos de representaciones SVG.
Y un dato más: porque todo esto se maneja a través de Gradle (la generación real de las carpetas de densidad), puede agregar configuraciones de compilación a través del mecanismo de sabor para limitar las carpetas de densidad que desea generar. Entonces, si, por ejemplo, siente que las imágenes mdpi han llegado al final de su utilidad para su base de usuarios en particular y desea dejar ese tamaño / densidad fuera de su aplicación para eliminar un par de MB del tamaño de la aplicación, puede configurar eso en El Gradle construye el sabor.
Con versiones anteriores de Android Studio, todas las carpetas de cubos dibujables se crearon de manera predeterminada (es decir, drawable-mdpi, drawable-hdpi, etc.). En las versiones más recientes de Android Studio, solo proporciona drawable y drawable-v21. ¿Porqué es eso?
¿Hay alguna razón por la que Android (en su infinita sabiduría) ya no te dé las carpetas de cubo separadas?
Solo para tener en cuenta, sé que puede agregarlos manualmente, pero quiero asegurarme de que no haya una nueva razón para no usar esas carpetas.