tamaño studio programacion para pantalla obtener móviles libro edición desarrollo curso aplicaciones android android-screen

studio - ¿Cómo obtener el tamaño de la pantalla del dispositivo Android?



obtener tamaño de pantalla android (6)

Tengo dos dispositivos Android con la misma resolución

Dispositivo1 -> resolución de pantalla diagonal de 480x800 -> 4.7 pulgadas

Dispositivo2 -> resolución de pantalla diagonal de 480x800 -> 4.0 pulgadas

¿Cómo encontrar el tamaño de la pantalla diagonal del dispositivo?

Detectar tabletas de 7 pulgadas y 10 pulgadas mediante programación

He usado el enlace de arriba, pero le da a ambos el tamaño de la pantalla diagonal del dispositivo -> 5.8


El teorema de Pitágoras para encontrar el tamaño diagonal de la pantalla del teléfono / tableta Android, el mismo principal se puede aplicar al iPhone o a la pantalla de Blackberry.

Pruebe lo siguiente a la inversa:

DisplayMetrics met = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(met);// get display metrics object String strSize = new DecimalFormat("##.##").format(Math.sqrt(((met.widthPixels / met.xdpi) * (met.widthPixels / met.xdpi)) + ((met.heightPixels / met.ydpi) * (met.heightPixels / met.ydpi)))); // using Dots per inches with width and height


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 olvides multiplicar el tamaño de la pantalla por scaledDensity si estás haciendo lo que hice y cambiar el tamaño de las cosas en función del 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);

¡Note la segunda última línea! Aquí hay más información sobre las cosas escaladas de densidad: ¿Qué devuelve realmente DisplayMetrics.scaledDensity en Android?


Prueba esto:

public static Boolean isTablet(Context context) { if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_LARGE) { return true; } return false; }


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);


DisplayMetrics displayMetrics = context.getResources() .getDisplayMetrics(); String screenWidthInPix = displayMetrics.widthPixels; String screenheightInPix = displayMetrics.heightPixels;