studio - layouts para diferentes pantallas android
Android: ¿cuál es la diferencia entre resolución y densidad? (5)
Según las definiciones de Android, he encontrado que:
Resolución: El número total de píxeles físicos en una pantalla.
Densidad: en función de la resolución de la pantalla, la propagación de píxeles a lo ancho y alto físico de la pantalla.
¿Alguien puede ayudarme a comprender mejor las diferencias entre las dos definiciones?
Gracias de antemano c.
Básicamente:
- La resolución se refiere a un número absoluto de píxeles. (mira la resolución de imagen de wikipedia)
- La densidad (también conocida como píxeles por pulgada - PPI) se refiere a un número relativo de píxeles por pulgada. (Echa un vistazo a la en.wikipedia.org/wiki/Pixel_density Wikipedia)
Cuidate beco
La resolución es sobre cuántos píxeles puede mostrar en la pantalla.
La densidad se basa en el tamaño real de su dispositivo, si es pequeño y tiene una resolución más alta, que la densidad es alta porque muestra más píxeles en menos espacio físico.
La resolución es una medida de cuántos píxeles puede mostrar una pantalla a la vez, por ejemplo. 640x480. La densidad es una medida de qué tan grande es cada píxel en unidades reales. Esto se relaciona en gran medida con el tamaño de la pantalla, por ejemplo. 640x480 en una pantalla de 15 ''.
Al comparar la resolución de un dispositivo con otro, es una comparación directa: cuanto más alta sea la resolución, más información podrá mostrar a la vez. Al comparar la densidad: cuanto mayor sea la densidad, más nítida aparecerá la pantalla.
Si tiene alta resolución y baja densidad, entonces su pantalla será muy grande. Por otro lado, la baja resolución y la alta densidad darán como resultado una pantalla muy pequeña.
Mejores prácticas
El objetivo de admitir varias pantallas es crear una aplicación que pueda funcionar correctamente y que se vea bien en cualquiera de las configuraciones de pantalla generalizadas que admite Android. Las secciones anteriores de este documento brindan información sobre cómo Android adapta su aplicación a las configuraciones de pantalla y cómo puede personalizar el aspecto de su aplicación en diferentes configuraciones de pantalla. Esta sección proporciona algunos consejos adicionales y una descripción general de las técnicas que ayudan a garantizar que su aplicación se adapte correctamente a las diferentes configuraciones de pantalla.
Aquí hay una lista de verificación rápida sobre cómo puede asegurarse de que su aplicación se muestre correctamente en diferentes pantallas: 1.Utilice wrap_content, fill_parent o dp units cuando especifique dimensiones en un archivo de diseño XML 2. No use valores de píxeles codificados en el código de su aplicación 3.No use AbsoluteLayout (está en desuso) 4.Suplique dibujables de mapa de bits alternativos para diferentes densidades de pantalla
Las siguientes secciones proporcionan más detalles.
- Use wrap_content, fill_parent o la unidad dp para las dimensiones del diseño
Al definir las vistas de android: layout_width y android: layout_height en un archivo de diseño XML, el uso de "wrap_content", "fill_parent" o dp units garantiza que la vista tenga el tamaño adecuado en la pantalla del dispositivo actual.
Por ejemplo, una vista con layout_width = "100dp" mide 100 píxeles de ancho en la pantalla de densidad media y el sistema la amplía hasta 150 píxeles de ancho en la pantalla de alta densidad, de modo que la vista ocupa aproximadamente el mismo espacio físico en la pantalla .
De forma similar, debería preferir el sp (píxel independiente de la escala) para definir los tamaños del texto. El factor de escala sp depende de la configuración del usuario y el sistema escala el tamaño de la misma manera que lo hace para dp.
- No utilice valores de píxeles codificados en el código de su aplicación
Por razones de rendimiento y para mantener el código más simple, el sistema Android utiliza píxeles como la unidad estándar para expresar valores de dimensión o coordenadas. Eso significa que las dimensiones de una vista siempre se expresan en el código mediante píxeles, pero siempre en función de la densidad de la pantalla actual. Por ejemplo, si myView.getWidth () devuelve 10, la vista tiene 10 píxeles de ancho en la pantalla actual, pero en un dispositivo con una pantalla de mayor densidad, el valor devuelto puede ser 15. Si usa valores de píxeles en su código de aplicación para Si trabaja con mapas de bits que no están preescalados para la densidad de pantalla actual, es posible que deba escalar los valores de píxeles que utiliza en su código para que coincidan con el origen del mapa de bits sin escalar.
Si su aplicación manipula mapas de bits o trata con valores de píxeles en tiempo de ejecución, consulte la sección a continuación sobre Consideraciones de densidad adicional.
- No use AbsoluteLayout
A diferencia de los otros widgets de diseño, AbsoluteLayout impone el uso de posiciones fijas para diseñar sus vistas secundarias, lo que puede llevar fácilmente a interfaces de usuario que no funcionan bien en diferentes pantallas. Debido a esto, AbsoluteLayout quedó en desuso en Android 1.5 (nivel API 3).
En su lugar, debe utilizar RelativeLayout, que utiliza la posición relativa para diseñar sus vistas secundarias. Por ejemplo, puede especificar que un widget de botón debe aparecer "a la derecha de" un widget de texto.
- Utilizar recursos de tamaño y densidad específicos.
Aunque el sistema ajusta su diseño y los recursos de dibujo en función de la configuración de pantalla actual, es posible que desee realizar ajustes en la interfaz de usuario en diferentes tamaños de pantalla y proporcionar dibujables de mapa de bits que estén optimizados para diferentes densidades. Esto esencialmente reitera la información de anteriormente en este documento.
Si necesita controlar exactamente cómo se verá su aplicación en varias configuraciones de pantalla, ajuste sus diseños y dibujables de mapa de bits en directorios de recursos específicos de la configuración. Por ejemplo, considere un ícono que desea mostrar en pantallas de densidad media y alta. Simplemente cree su icono en dos tamaños diferentes (por ejemplo, 100x100 para densidad media y 150x150 para alta densidad) y coloque las dos variaciones en los directorios apropiados, utilizando los calificadores apropiados: res / drawable-mdpi / icon.png // para medium- screensres de densidad / drawable-hdpi / icon.png // para pantallas de alta densidad
Resolución => Cp * Rp (Número de PIXEL en COLUMNA y Número de PIXEL en RAW)
Densidad => Np / 1 pulgada (número de PIXEL por pulgada)