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

Cómo obtener información sobre la pantalla en Android
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!