
La semana pasada os hable de como localizar aplicaciones. La solución era muy simple, aplicando nombres específicos a las carpetas nos llegaba de sobra. Lo mismo se puede aplicar por ejemplo para determinados layouts o imágenes. Simplemente con hacer su versión y colocarlo en la carpeta correspondiente bastaría.
En mi caso con esto no bastaba y necesitaba obtener por código parámetros tales como la versión de Android, la densidad de pantalla o el tamaño de pantalla. Vamos a ver como con unas simples instrucciones seremos capaces de adaptar nuestra aplicación a cualquier dispositivo.
Lo primero que veremos es como reconocer la versión de Android.
Para ello utilizamos la clase Build. Esta nos va a dar la versión Android que tenemos con el método VERSION, y con el parámetro SDK_INT obtendremos el número entero definido para nuestra versión. De esta forma si queremos hacer algo para versiones iguales o superiores a HONEYCOMB, por ejemplo, solo tendreis que utilizar el siguiente código.
Buid.VERSION_CODES contiene una enumeración con las diferentes versiones de Android.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
//HONEYCOMB Y SUPERIOR
}else{
//VERSIONES INFERIORES A HONEYCOMB
}
Otro tema que también puede que necesitéis es la densidad de píxeles de la pantalla. Para ello debemos acceder a getResources y dentro de este a los DisplayMetrics. Con esto podemos verificar la densidad de píxeles de la pantalla.
if(getResources().getDisplayMetrics().densityDpi == DisplayMetrics.DENSITY_XHIGH){}
Siguiendo con el tamaño de pantalla, también podemos verificar el tamaño de la pantalla: pequeña, mediana, grande y cuando llegaron las tablets, extra-grande. Seguimos con getResources y ahora accedemos a getConfiguration y dentro de este a screenLayout. A continuación comparamos con los valores referentes a los tamaños de pantalla. En el caso siguiente estamos comprobando si se trata de una pantalla extra-grande.
if (getResources().getConfiguration().screenLayout == Configuration.SCREENLAYOUT_SIZE_XLARGE) {}
Por último, podemos comprobar también la orientación de la pantalla. Esta tiene dos estados: LANDSCAPE o PORTRAIT. Landscape es cuando la pantalla esta de tal forma que se vé más ancha que alta y portrait al revés.
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {}
Como veis, también accedemos a getResources, getConfiguration y esta vez evaluamos la orientation.
The following two tabs change content below.
Técnico en Administración de Sistemas y Desarrollo de Aplicaciones. Amigo de sus amigos, y una mente inquieta que no puede dejar un ordenador de lado porque necesita programar aplicaciones Android o aplicaciones en general, además de páginas web. Nuestro programador de cabecera y espero que también el vuestro.
Relacionado