Si usa el asistente de activos vectoriales en Android Studio 1.5.0, cualquier XML de diseño vectorial que importe con ese asistente entrará en res/drawable/
.
Sin embargo, el build/
directorio y el APK resultante muestran que esos archivos XML se mueven a un res/drawable-anydpi-v21/
directorio de recursos. La -v21
parte tiene sentido, ya VectorDrawable
que solo es compatible con API Level 21+. Sin embargo, -anydpi
parece estar indocumentado. Hubiera esperado -nodpi
, tanto para el destino de importación original como para el lugar donde el sistema de compilación elige moverlo.
¿Alguien ha visto declaraciones oficiales para qué -anydpi
medios y con qué relación está -nodpi
? Estoy buscando efectos prácticos, no simplemente lo que sugieren algunos comentarios de código.
fuente
Respuestas:
nodpi
Por ejemplo:
El punto aparecerá pequeño en xxhdpi, grande en ldpi.
Sin embargo, el solucionador de recursos coincidirá con un calificador específico si existe.
Por ejemplo
En un dispositivo hdpi Lollipop (API 21), se utiliza el mapa de bits .
En un dispositivo xhdpi Lollipop (API 21), se utiliza el vector.
anydpi
Por ejemplo
En un dispositivo hdpi Lollipop (API 21), se utiliza el vector .
En un dispositivo xhdpi Lollipop (API 21), se utiliza el vector.
Referencia
Nota : anydpi se agregó en el cambio Ic3288d0236fe0bff20bb1599aba2582c25b0db32 .
fuente
drawable
. El comportamiento del SDK puede haber cambiado. Ver VectorDrawable: Android carga PNG xhdpi en lugar del recurso vectorialdrawable
directorio de recursos, al igual que los dos directorios que cité en mi recompensa sondrawable
directorios de recursos.-xxhdpi
dispositivo. Tengores/drawable-mdpi/nodpi_and_m.png
yres/drawable-nodpi/nodpi_and_m.xml
. En un-xxhdpi
dispositivo Nexus 5, el recurso que se utiliza esres/drawable-nodpi/nodpi_and_m.xml
. De acuerdo con su algoritmo, y mis expectativas,res/drawable-mdpi/nodpi_and_m.png
debería usarse. Eso no es lo que está pasando.drawable-anydpi-v21
. Si tiene la biblioteca de dibujo vectorial de soporte, puede colocarlos endrawable-anydpi
o simplementedrawable
.El código fuente contiene los siguientes comentarios (línea 639):
Espero que esto aclare la confusión.
fuente
-nodpi
directorios se escalan con toda seguridad en función del tamaño, de acuerdo con las reglas que existan sobre cómo se utiliza el elemento de diseño.nodpi
: Recursos para todas las densidades. Estos son recursos independientes de la densidad. El sistema no escala los recursos etiquetados con este calificador, independientemente de la densidad de la pantalla actual.anydpi
: Este calificador coincide con todas las densidades de pantalla y tiene prioridad sobre otros calificadores. Esto es útil para elementos de diseño vectoriales. Agregado en API Nivel 21.fuente
Utilizo drawable-nodpi para todo, incluidos muchos gráficos grandes para mi juego. Una consecuencia indocumentada de escalar sus gráficos es que aumenta exponencialmente el uso de memoria. Por lo tanto, si tiene un gráfico de 1 MB que se puede dibujar, se escalará a 4 MB, 16 MB o 64 MB según la resolución del dispositivo del usuario. Y las resoluciones de los dispositivos siguen aumentando. Esa ampliación en realidad no aumenta la nitidez del gráfico, por supuesto. Las acciones de dibujo pueden determinar el tamaño de cada gráfico en relación con el tamaño de la pantalla de todos modos, sin necesidad de llenar la aplicación con varias carpetas de dibujo.
fuente