Tamaño de pantalla en API nivel 10 y adelante?
Quiero obtener el tamaño de la pantalla y estoy utilizando un dispositivo que tiene nivel de API 10. Estoy usando la Display
para obtener el ancho y la altura, pero estoy recibiendo un mensaje en Eclipse que este es obsoleto. Una manera mejor y más nueva es usar DisplayMetrics
para aplicaciones que tengan una API más reciente, pero no hay soporte para DisplayMetrics
en la API 10. ¿Cómo debo hacer para manejar este problema?
Viejo (desaprobado)
Display display = getWindowManager().getDefaultDisplay(); screenWidth = display.getWidth(); screenHeight = display.getHeight();
Nuevo
DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); metrics.heightPixels; metrics.widthPixels;
Sólo tienes que comprobar el nivel de API como este:
int screenWidth = 0; int screenHeight = 0; if(android.os.Build.VERSION.SDK_INT < 10) { Display display = getWindowManager().getDefaultDisplay(); screenWidth = display.getWidth(); screenHeight = display.getHeight(); } else { DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); screenWidth = metrics.widthPixels; screenHeight = metrics.heightPixels; }
Pero DisplayMetrics
se agregó en el API level 1
. Así que en realidad sólo se necesita la cláusula else.
En mi aplicación utilizo getResources().getDisplayMetrics()
directamente en mi objeto de actividad. Exactamente me da el tamaño de la pantalla. Funciona bien ya que está disponible desde el nivel 1 de la API.