Red de conocimiento informático - Material del sitio web - Código fuente de conversión de unidades en línea

Código fuente de conversión de unidades en línea

1. Descripción general

En el pasado, los programadores solían diseñar interfaces de usuario de computadora en píxeles. Por ejemplo, el tamaño de la imagen es 80×32 píxeles. El problema con este enfoque es que si el programa se ejecuta en un monitor nuevo con una mayor cantidad de puntos por pulgada (ppp), la interfaz de usuario aparecerá muy pequeña. En algunos casos, la interfaz de usuario puede ser demasiado pequeña para verse con claridad. Por tanto, podemos solucionar este problema desarrollando programas con unidades de medida que sean independientes de la resolución. El desarrollo de aplicaciones de Android admite diferentes unidades de medida.

2. El significado de la unidad de medida

dip: dispositivo

píxel independiente. Diferentes dispositivos tienen diferentes efectos de visualización, que están relacionados con el hardware del dispositivo. En términos generales, admitimos WVGA, HVGA y QVGA.

Esto es recomendado y no depende de los píxeles.

Dp: Dip es el mismo

Pixel: Pixel (pixel)

Diferentes dispositivos muestran el mismo efecto. Generalmente, HVGA significa 320x480 píxeles y se usa con más frecuencia.

pt:

El punto es la unidad estándar de longitud, 1 pt = 1/72 de pulgada, utilizada en la industria de la impresión, muy simple y fácil de usar.

Sp: Escalar píxeles (ampliar píxeles).

Se utiliza principalmente para mostrar fuentes que son más adecuadas para el tamaño del texto.

Pulgada: unidad de longitud.

Milímetro: unidad de longitud.

3. Fórmula de conversión de unidades de medida

En el paquete de código fuente de Android TypedValue.java, observamos las siguientes funciones:

Copiar código

p>

El código es el siguiente:

Tamaño de la aplicación de punto flotante estático público (int

Unidad, valor de punto flotante,

medición de medición de visualización)

{

Cambiar (unidad)

{

Case_unit_pixel complejo:

Valor de retorno;

Situación

Ángulo de inclinación de la unidad compleja:

Valor de retorno * métricas.densidad

Situación

Punto de servicio de la unidad del sistema combinado :

p>

Valor de retorno * metrics.scaledDensity

Situación

Punto de unidad compleja:

Valor de retorno * métricas xdpi *( 1.0f/72) ;

Situación

Entrada de unidad compleja:

Valor de retorno * metrics.xdpi

Situación

Unidad compleja mm:

Valor de retorno * metrics.xdpi *

(1.0f/25.4 f);

}

Return 0;

}

La función de esta función es convertir cada unidad en píxeles.

Metrics.density: el valor predeterminado es densidad_device/(float)density_default;

Metrics.scaledDensity: el valor predeterminado es densidad_device/(float)density_default

Metrics.xdpi: El valor predeterminado es DENSITY_DEVICE

DENSITY_DEVICE: Es la densidad de la pantalla.

DENSITY_DEFAULT: El valor predeterminado es 160.

4. Densidad de la pantalla: Indica cuántos puntos de visualización hay por pulgada, que es diferente de la resolución.

Android tiene principalmente las siguientes pantallas: Tabla a continuación

Pantalla

Tipo

Ancho

Píxeles

Altura

Píxeles

Medidas

Rango (pulgadas)

Densidad de pantalla

QVGA

240

320

2.6-3.0

Bajo

WQVGA

240

Celebridades

3.2-3.5

Bajo

FWQVGA

240

432

3.5-3.8

Bajo

HVGA

320

480

3.0 -3,5

Medio

WVGA

480

Ochocientos

3,3-4,0

Alto

FWVGA

480

854

3.5-4.0

Alto

WVGA

480

Ochocientos

4.8-5.5

Medio

FWVGA

480

854

5.0-5.8

Medio

Comentarios

Actualmente, el nivel bajo predeterminado de Android es 120; medio = 160;

Alto = 240

5.

Según px = inclinación*densidad/

160, cuando la densidad de la pantalla es 160, px = inmersión.

Según las recomendaciones de Google, lo mejor es utilizar sp para el tamaño de fuente de TextView.

Para las unidades, consulte el código fuente de TextView y sabrá que Android usa sp como unidad de tamaño de fuente de forma predeterminada. Utilice la inclinación como unidad para otros elementos.