Método de cálculo de la memoria de mapa de bits
1. Conceptos básicos:
px: píxel (píxel), se refiere al punto físico de la pantalla, la unidad de visualización independiente más pequeña.
ppi: se refiere al valor de píxeles por pulgada en la dirección horizontal o vertical, píxeles por pulgada (es decir, el número de píxeles por pulgada) y la longitud diagonal se calcula a través del largo y ancho de la pantalla. , dividido por las pulgadas de diagonal de la pantalla. X/x = Y/y = ppi, donde X es el valor de píxel horizontal, x es el valor de pulgada horizontal, Y es el valor de píxel vertical e y es el valor de pulgada vertical. Entonces ppi=√(X? Y?)/pulgada diagonal
dpi: puntos por pulgada (mdpi: 150, hdpi: 240), el número de píxeles por pulgada
dp: no tiene nada que ver con píxeles, píxeles virtuales, px = dp (dpi/160)
densidadDpi: es el número de puntos por pulgada de la pantalla (no píxeles) densidad = densidadDpi/160
en: pulgadas, igual a 2,54 centímetros.
2. Cálculo:
1. Cálculo de píxeles
px = dp (dpi/160)
Tomando Nexus6 como ejemplo , Se coloca una imagen 180 180 en ImageView con contenido ajustado cuando esta imagen se coloca en drawable-nodpi, drawable-mdpi, drawable-hdpi, drawable-xhdpi, drawable-xxhdpi, drawable-xxxhdpi, respectivamente En el recurso. directorio, ¿cuántos píxeles se muestran en la pantalla?
hdpi: int(180560/240) 0.5f)=420px
xhdpi: int(180 (560/320) 0.5f) = 315px
xxhdpi : int(180 (560/480) 0.5f) = 210px
2. Cálculo de memoria:
ALPHA8, RGB565, ARGB_4444, ARGB8888, ARGB8888 predeterminado del sistema Android (Cuenta para respectivamente. El número de bytes es 1, 2, 2, 4Byte)
memoria hdpi: 4204204=705600byte = 689kb
memoria xhdpi: 3153154= 396900byte = 387.6kb
Memoria xxhdpi: 2102104=176400byte = 172,2 kb
drawable-ldpi (dpi=120, densidad=0,75)
drawable-mdpi (dpi=160, densidad=1 ) p>
dibujable-hdpi (dpi=240, densidad=1.5)
dibujable-xhdpi (dpi=320, densidad=2)
dibujable-xxhdpi (dpi=480 , densidad = 3)
3. Uso de memoria del mapa de bits: el tamaño ocupado por el mapa de bits en la memoria en realidad depende de:
Formato de color, si es ARGB8888, entonces es un píxel 4 bytes, si es RGB565, son 2 bytes
El directorio de recursos donde se almacena el archivo original (ya sea hdpi o xxhdpi), etc.
La densidad del pantalla de destino (por lo tanto, en las mismas condiciones, la memoria consumida por Redmi en términos de recursos es definitivamente menor que la del Samsung S6)
4. Cálculo de la memoria:
720 Una imagen de 720 px colocado en la pantalla del teléfono móvil es de 320 ppp y el archivo escalado La carpeta es mdpi y se utiliza el formato de almacenamiento predeterminado La memoria ocupada es:
(720 (160/320) 0.5f)^2<. /p>