Solución:
prueba este código para obtener el tamaño de la pantalla en pulgadas
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int width=dm.widthPixels;
int height=dm.heightPixels;
double wi=(double)width/(double)dm.xdpi;
double hi=(double)height/(double)dm.ydpi;
double x = Math.pow(wi,2);
double y = Math.pow(hi,2);
double screenInches = Math.sqrt(x+y);
¿Esto no funcionará?
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
double y = Math.pow(dm.heightPixels / dm.ydpi, 2);
double screenInches = Math.sqrt(x + y);
Log.d("debug", "Screen inches : " + screenInches);
No olvide multiplicar el tamaño de la pantalla por la Densidad escalada si está haciendo lo que yo hice y cambiar el tamaño de las cosas según el tamaño de la pantalla. p.ej:
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
double y = Math.pow(dm.heightPixels / dm.ydpi, 2);
double screenInches = Math.sqrt(x + y) * dm.scaledDensity;
Log.d("debug", "Screen inches : " + screenInches);
¡Tenga en cuenta la penúltima línea! Aquí hay más información sobre scaledDensity: ¿Qué devuelve realmente DisplayMetrics.scaledDensity en Android?
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)