Red de conocimientos turísticos - Información de alquiler - Acerca de dp, dpi, px de adaptación de pantalla

Acerca de dp, dpi, px de adaptación de pantalla

1. La relación entre las carpetas de recursos

En el desarrollo de Android, la interfaz de usuario generalmente produce una variedad de materiales de imágenes, que se colocan en las siguientes carpetas de acuerdo con la resolución de los materiales. Medio:

ldpi (120 ppp)

mdpi (160 ppp)

hdpi (240 ppp)

xdpi (320 ppp)

xxdpi (480 ppp)

xxxdpi (640 ppp)

Basado en mdpi (160 ppp)

Se puede observar que la relación proporcional del coeficiente es: 0,75 :1: 1.5: 2: 3: 4

2. Resolución de teléfono Android convencional y cálculo de ppp y densidad

Consulte el dispositivo simulador que viene con Android Studio:

p>

Cálculo de ppp y densidad de las pantallas de teléfonos móviles:

Tome Nexus5X como ejemplo:

Densidad: 420/160=2.625

3. Cargar archivos de recursos

Obviamente, 420 ppp no ​​pertenece a ninguna de las categorías de archivos anteriores. Las resoluciones de los teléfonos Android son muy extrañas. Por lo tanto, la carpeta anterior no especifica una resolución específica, sino un rango. como ldpi (valor <120 ppp), mdpi (120 ppp

Verifíquelo:

Hay dos imágenes aquí

p>

Coloque 171×171 en xxdpi y 64×64 en xdpi. Utilice Nexus5X para probar. ¿En qué carpeta debería cargar los recursos?

El resultado es como se muestra en la figura:

¿En qué carpeta está cargada la imagen? ¿Es 171 o 64? Yo tampoco lo sé. Luego lo cambiaré y pondré 171 × 171 en xdpi y 64 × 64 en xxdpi. Si la imagen se vuelve más pequeña, demuestra que la imagen en la carpeta xxdpi debe cargarse.

El resultado es como se muestra en la figura:

4. Fórmula de conversión

Conversión entre dp y px:

dp=px *densidad

En el proceso de desarrollo real, la fórmula de conversión comúnmente utilizada es:

Tomando dp2px como ejemplo, aquí hay un pequeño detalle De acuerdo con la derivación anterior, el resultado de. El retorno debe ser (int) (valores * densidad), y el resultado antes de la conversión forzada será +0.5f. La razón es que el proceso de conversión fuerte de punto flotante a entero elimina directamente la parte decimal es +0.5f. equivalente al proceso de redondeo (la parte decimal es mayor que +0,5f de 0,5 (se agregará más adelante), el resultado parecerá más preciso.