Cómo obtener información sobre la pantalla en Android

Consigue gratis tu cuenta

Crea una API REST con Node.js y MongoDB

En este curso vas a aprender a crear una API REST con Node.js y MongoDB, además de crear un entorno de desarrollo con Docker y Docker Compose.

Comenzar ahora

como obtener informacion sobre la pantalla en Android tutorial geeky theory tip

¡Hola! Hoy quiero enseñaros un pequeño tip que yo utilizaba en mis tiempos mozos en los que desarrollaba en Android, hace cosa de un año. Por aquel entonces, estaba programando una aplicación que utilizaba directamente los datos de la pantalla del dispositivo donde se ejecutara, como el ancho y el alto. Debido a esto, tenía que comprobar ciertas cosas utilizando los métodos que proporciona el Android SDK. Vamos a obtener los siguientes parámetros:

  • Pantalla.
  • Ancho.
  • Alto.
  • Densidad.
  • xdpi.
  • ydpi.
  • Orientación.

El código que os voy a enseñar hace uso de logs para mostrar la información. No lo mostramos por pantalla en la aplicación en este caso, pero haciendo uso de TextViews se podría mostrar. Es simplemente información para el desarrollador. Ahí va:

Display display = getWindowManager().getDefaultDisplay();
String displayName = display.getName();  // minSdkVersion=17+
Log.i(TAG, "Pantalla          = " + displayName);

// Tamaño en píxeles
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
Log.i(TAG, "Ancho             = " + width);
Log.i(TAG, "Alto              = " + height);

// dpi
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int heightPixels = metrics.heightPixels;
int widthPixels = metrics.widthPixels;
int densityDpi = metrics.densityDpi;
float xdpi = metrics.xdpi;
float ydpi = metrics.ydpi;
Log.i(TAG, "Ancho en píxeles  = " + widthPixels);
Log.i(TAG, "Alto en píxeles   = " + heightPixels);
Log.i(TAG, "Densidad dpi      = " + densityDpi);
Log.i(TAG, "x dpi             = " + xdpi);
Log.i(TAG, "y dpi             = " + ydpi);

// Deprecated
int screenHeight = display.getHeight();
int screenWidth = display.getWidth();
Log.i(TAG, "Alto de pantalla  = " + screenHeight);
Log.i(TAG, "Ancho de pantalla = " + screenWidth);

// Orientación 
int orientation = getResources().getConfiguration().orientation;
Log.i(TAG, "Orientación       = " + orientation);

Como resultado, obtengo lo siguiente en un Nexus 5 que he emulado desde Android Studio:

Pantalla          = Built-in Screen
Ancho             = 1080
Alto              = 1776
Ancho en píxeles  = 1080
Alto en píxeles   = 1776
Densidad dpi      = 480
x dpi             = 480.0
y dpi             = 480.0
Alto de pantalla  = 1776
Ancho de pantalla = 1080
Orientación       = 1

Tal y como podéis observar en el código y en los resultados obtenidos, hay diferentes maneras de obtener las propiedades de la pantalla de un dispositivo Android.

Espero que os sirva, o por lo menos os lo dejo como curiosidad.

¡Saludos!


¿Quieres seguir aprendiendo?