Código fuente de conversión de unidades en línea
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 p >
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.