¿Cómo obtener el tamaño de pantalla del dispositivo?

El deseo tiene 480 x 800 píxeles, 3,7 pulgadas y la HD tienen 480 x 800 píxeles, 4.3 pulgadas de especificación de la pantalla.

Ejecutar el código que se acepta como respuesta de este hilo ¿Cómo obtener el tamaño de pantalla del dispositivo? Pero está mal !, por ejemplo para el tamaño de la pantalla de 3.7 pulgadas devuelve 2.4 que es muy mal!

¿Alguien sabe cómo obtener el tamaño real de la pantalla ?, No necesito la resolución que necesito el tamaño de la pantalla de la pantalla en pulgadas.

NOTA: este código es incorrecto (al menos no funciona para mí)

DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; //give me 320 int height = dm.heightPixels; //give me 533 

Tengo HTC Desire y mi resolución es de 480 x 800 píxeles!

¡Sé que soy estúpido! , Y, obviamente, hago algo mal, pero alguien puede por favor me alto cómo obtener el tamaño real de la pantalla en pulgadas, y obtener la resolución real del dispositivo?

Gracias

OK finalmente encontré cuál es mi problema

Sí, este código funciona bien, pero no devuelve píxeles, devuelve DIP (densidad de píxeles independientes), que no es lo mismo!

 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; //320 dip int height = dm.heightPixels; //533 dip 

Lo que necesitaba eran los píxeles REALES y el cálculo para ellos es así:

 int widthPix = (int) Math.ceil(dm.widthPixels * (dm.densityDpi / 160.0)); 

Ahora el widthPix es 480!

Encontré tu pregunta y me hizo preguntarme por qué definitivamente no estoy viendo este efecto en cualquier dispositivo que estoy desarrollando o probando con … getWidth () / getHeight () están devolviendo las extensiones exactas de la pantalla utilizable. Sospecho que otros terminarán aquí también, añadiendo el código que causa más confusión y no entender la causa raíz.

Resulta que esto es exactamente lo que sucede si deshabilita explícitamente el pre-escalado Consulte el segundo viñeta de este documento . (Una rápida búsqueda de Google en el término "320×533" apareció muchas otras personas que han encontrado esto.) Deshágase de su pre-escala y la discrepancia debe desaparecer (getWidth () / getHeight () Tamaño, no el tamaño escalado .

Nota para devs de tableta: getWidth () / getHeight () no devolverá el tamaño de pantalla sin formato porque la barra inferior (48 píxeles o menos) no forma parte del área a la que una aplicación puede dibujar. Obtendrá el tamaño de todo lo que pueda dibujar (por ejemplo, 1280×752 en lugar de 1280×800 en modo horizontal). Una vez más, ningún pre-escala significa que estos valores son exactos y exactos.

Puedes hacerlo así:

 DisplayMetrics m = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(m); // fills m int x = m.xdpi; int y = m.ydpi; 

Y esto le dará el tipo de densidad de la pantalla:

 int density= m.densityDpi; 

Intente usar la clase Display lugar de DisplayMetrics .

 Display dispOb = getWindowManager().getDefaultDisplay(); String widthAndHeight= dispOb.getWidth()+"X"+dispOb.getHeight(); 

Deshabilite la escala previa agregando esta línea a su archivo de manifiesto:

 <supports-screens android:anyDensity="true" /> 

Posición:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="...." android:versionCode="1" android:versionName="1.0"> <supports-screens android:anyDensity="true" /> <application android:label="@string/app_name" > ... 
  • ¿Cómo varía el tamaño de la instalación de la aplicación en el teléfono?
  • ¿Android obtiene el tamaño de pantalla obsoleto?
  • No quiero que Android cambie el tamaño de mi mapa de bits automáticamente
  • Android: layout_height 50% del tamaño de la pantalla
  • El tamaño de .apk está aumentando con el aumento con los dispositivos de destino (LDPI, MDPI, HDPI, Pantallas X-Large)
  • Admob no llena todo el ancho
  • Aplicación para Android: admite todos los tamaños de pantalla
  • Inconsistencia al establecer el tamaño de fuente de TextView en el código y en los recursos
  • Android y el soporte de múltiples diseños de pantallas
  • Android: ImageView escala la imagen de origen
  • Cómo corregir el error en el tamaño de mapa de bits supera el presupuesto de VM
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.