wrestling wcpw significado roster left defiant championship android android-resources

android - wcpw - ¿Cuál es la diferencia entre-anydpi y-nodpi?



defiant wrestling wikipedia (4)

nodpi

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.

Por ejemplo:

  • drawable- nodpi /dot.png

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

  • drawable- hdpi /eg.png
  • dibujable- nodpi -v21 / eg.xml

En un dispositivo hdpi Lollipop (API 21), se utiliza el mapa de bits .

En un dispositivo xhdpi Lollipop (API 21), se usa el vector.

anydpi

Estos recursos tienen prioridad en cualquier dpi.

Por ejemplo

  • drawable- hdpi /eg.png
  • drawable- anydpi -v21 / eg.xml

En un dispositivo hdpi Lollipop (API 21), se utiliza el vector .

En un dispositivo xhdpi Lollipop (API 21), se usa el vector.

Referencia

Nota : anydpi se agregó en el cambio Ic3288d0236fe0bff20bb1599aba2582c25b0db32 .

Si utiliza el asistente de Vector Asset en Android Studio 1.5.0, cualquier XML dibujable de vector que importe utilizando ese asistente entrará en res/drawable/ .

Sin embargo, el directorio build/ y el APK resultante muestran que esos archivos XML se trasladan a un directorio res/drawable-anydpi-v21/ resource. La parte -v21 tiene sentido, ya que VectorDrawable solo es compatible con API Nivel 21+. Sin embargo, -anydpi parece no estar documentado. 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 de lo que significa -anydpi y cuál es su relación con -nodpi ? Estoy buscando efectos prácticos, no solo lo que sugieren algunos comentarios de código.


El código fuente contiene los siguientes comentarios (línea 639):

/** * Value for {@link #densityDpi} for resources that scale to any density (vector drawables). * {@hide} */ public static final int DENSITY_DPI_ANY = 0xfffe; /** * Value for {@link #densityDpi} for resources that are not meant to be scaled. * {@hide} */ public static final int DENSITY_DPI_NONE = 0xffff;

Espero que esto aclare la confusión.


Utilizo drawable-nodpi para todo, y tengo muchos gráficos grandes. Una consecuencia indocumentada de ''ampliar'' sus gráficos es que aumenta el uso de memoria exponencialmente. Entonces, si tiene un gráfico de 100M en ''dibujable'', se escalará a 400M o 1.6G dependiendo de qué tan alta sea la resolución del dispositivo del usuario. Y las resoluciones de los dispositivos siguen subiendo. Esa ampliación no aumenta la "nitidez" de los gráficos, por supuesto. Las acciones de dibujo pueden indicar qué tan grandes deben ser los gráficos en relación con el tamaño de la pantalla de todos modos, no es necesario hinchar la aplicación con múltiples carpetas de dibujo.


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 vectores dibujables. Agregado en API Nivel 21.