Revisión de los conceptos básicos de los mensajes de pantalla de Android

La diferencia y relación entre píxel/resolución/densidad/múltiple/tamaño en Android

En Android, existe una estrecha relación entre los píxeles (px), la resolución, la densidad (dpi) y el tamaño.

  • **Pixel (px)** es la unidad más pequeña para mostrar imágenes en la pantalla. Cada píxel puede mostrar un color y varios píxeles combinados pueden mostrar imágenes complejas.

  • La resolución se refiere al número de píxeles en la pantalla. Por lo general, se expresa como el producto de ancho y alto, como 1920x1080. Cuanto mayor sea la resolución, más detalles se pueden mostrar en la pantalla.

  • **Densidad (dpi)** se refiere a la cantidad de píxeles por pulgada en la pantalla. Se utiliza para medir la nitidez de la pantalla. Cuanto mayor sea la densidad, más nítida aparecerá una imagen del mismo tamaño.

  • El tamaño se refiere al tamaño físico de la pantalla. Generalmente se expresa en pulgadas. Cuanto mayor sea el tamaño, más contenido se puede mostrar en la pantalla.

Existe una estrecha relación entre estos conceptos. Por ejemplo, la resolución y el tamaño determinan la densidad de la pantalla. Si dos pantallas tienen la misma resolución pero diferentes tamaños, la pantalla más pequeña tendrá una mayor densidad.

Además, hay un concepto importante en Android: múltiplos. El múltiplo se refiere a la relación entre la densidad de la pantalla y la densidad base (160 ppp). Se utiliza para convertir unidades de dp a unidades de píxeles. Por ejemplo, si la densidad de la pantalla es 320dpi, su múltiplo es 2, lo que significa que 1dp es igual a 2px.

densidad de pantalla múltiple

En el sistema Android, el múltiplo de densidad de pantalla se refiere a la relación entre la densidad de pantalla y la densidad de referencia (160 ppp). Se utiliza para convertir unidades de dp a unidades de píxeles. Por ejemplo, si la densidad de la pantalla es 320dpi, su múltiplo es 2, lo que significa que 1dp es igual a 2px.

Los niveles de densidad de pantalla y los múltiplos correspondientes en el sistema Android son los siguientes:

  • ldpi: Para pantallas de baja densidad, el multiplicador es 0,75.
  • mdpi: Para pantallas de densidad media, el multiplicador es 1.
  • hdpi: Pantalla de alta densidad, el multiplicador es 1,5.
  • xhdpi: Pantalla de ultra alta densidad, el múltiplo es 2.
  • xxhdpi: Pantalla de ultra-ultra-alta densidad con un múltiplo de 3.
  • xxxhdpi: Pantalla de ultra-ultra-ultra-alta densidad con un múltiplo de 4.

Según los datos de Google Play, al 6 de enero de 2023, aproximadamente el 52,9 % de los dispositivos tienen 76.9%una densidad de pantalla de xxhdpi y aproximadamente el 52,9 % de ellos tienen una densidad de pantalla de xhdpi. Esto significa que el múltiplo de densidad de pantalla de los dispositivos Android convencionales actuales es 2 o 3. Por lo tanto, en el desarrollo normal, los diseñadores de UI generalmente solo hacen un conjunto de borradores de diseño con imágenes xxhdpi 3 veces.

Obtenga densidad de pantalla de Android, densidad exacta, resolución, resolución exacta

Usa DisplayMetricsuna clase para obtener información sobre la pantalla de un dispositivo Android

Aquí hay un código de muestra que muestra cómo obtener la densidad de pantalla, la densidad exacta, la resolución, el tamaño y el multiplicador:

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

int densityDpi = displayMetrics.densityDpi;
float xdpi = displayMetrics.xdpi;
float ydpi = displayMetrics.ydpi;

int widthPixels = displayMetrics.widthPixels;
int heightPixels = displayMetrics.heightPixels;

float widthInches = widthPixels / xdpi;
float heightInches = heightPixels / ydpi;

float density = displayMetrics.density;
float scaledDensity = displayMetrics.scaledDensity;

densityDpies la densidad de la pantalla, expresada en puntos por pulgada (dpi).
xdpiy ydpison las densidades exactas de la pantalla en las direcciones X e Y.
widthPixelsy heightPixelses la resolución de la pantalla en píxeles.
widthInchesy heightInchesson las dimensiones de la pantalla en pulgadas.
densityes el factor de escala de densidad (múltiplo) de la pantalla utilizada para convertir unidades de dp en unidades de píxeles.
scaledDensityes la densidad de escala de la pantalla, utilizada para convertir unidades sp a unidades de píxeles.

Imprimir información de pantalla con Logclase:

Log.d("ScreenInfo", "Density (dpi): " + densityDpi);
Log.d("ScreenInfo", "Exact density (xdpi): " + xdpi);
Log.d("ScreenInfo", "Exact density (ydpi): " + ydpi);
Log.d("ScreenInfo", "Resolution (widthPixels): " + widthPixels);
Log.d("ScreenInfo", "Resolution (heightPixels): " + heightPixels);
Log.d("ScreenInfo", "Exact resolution (widthInches): " + widthInches);
Log.d("ScreenInfo", "Exact resolution (heightInches): " + heightInches);
Log.d("ScreenInfo", "Density scale factor: " + density);
Log.d("ScreenInfo", "Scaled density: " + scaledDensity);

Mostrar información de la pantalla en AlertDialogun cuadro de diálogo

El siguiente es un código de muestra que crea un cuadro de diálogo y muestra información de la pantalla en él:

String screenInfo = "Density (dpi): " + densityDpi + "\n" +
        "Exact density (xdpi): " + xdpi + "\n" +
        "Exact density (ydpi): " + ydpi + "\n" +
        "Resolution (widthPixels): " + widthPixels + "\n" +
        "Resolution (heightPixels): " + heightPixels + "\n" +
        "Exact resolution (widthInches): " + widthInches + "\n" +
        "Exact resolution (heightInches): " + heightInches + "\n" +
        "Density scale factor: " + density + "\n" +
        "Scaled density: " + scaledDensity;

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Screen Info");
builder.setMessage(screenInfo);
builder.setPositiveButton("OK", null);
builder.show();

Supongo que te gusta

Origin blog.csdn.net/Jackson_Wen/article/details/130996199
Recomendado
Clasificación