Is there a way to determine android physical screen height in cm or inches? Is there a way to determine android physical screen height in cm or inches? android android

Is there a way to determine android physical screen height in cm or inches?


Use the following:

    DisplayMetrics dm = new DisplayMetrics();    getWindowManager().getDefaultDisplay().getMetrics(dm);    double x = Math.pow(mWidthPixels/dm.xdpi,2);    double y = Math.pow(mHeightPixels/dm.ydpi,2);    double screenInches = Math.sqrt(x+y);    Log.d("debug","Screen inches : " + screenInches);

When mWidthPixels and mHeightPixels are taken from below code

private void setRealDeviceSizeInPixels(){    WindowManager windowManager = getWindowManager();    Display display = windowManager.getDefaultDisplay();    DisplayMetrics displayMetrics = new DisplayMetrics();    display.getMetrics(displayMetrics);    // since SDK_INT = 1;    mWidthPixels = displayMetrics.widthPixels;    mHeightPixels = displayMetrics.heightPixels;    // includes window decorations (statusbar bar/menu bar)    if (Build.VERSION.SDK_INT >= 14 && Build.VERSION.SDK_INT < 17)    {        try        {            mWidthPixels = (Integer) Display.class.getMethod("getRawWidth").invoke(display);            mHeightPixels = (Integer) Display.class.getMethod("getRawHeight").invoke(display);        }        catch (Exception ignored)        {        }    }    // includes window decorations (statusbar bar/menu bar)    if (Build.VERSION.SDK_INT >= 17)    {        try        {            Point realSize = new Point();            Display.class.getMethod("getRealSize", Point.class).invoke(display, realSize);            mWidthPixels = realSize.x;            mHeightPixels = realSize.y;        }        catch (Exception ignored)        {        }    }

See this post for reference:Get screen dimensions in pixels


for getting the current size use Math.round at the end.

 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);screenInches=  (double)Math.round(screenInches * 10) / 10;


android developers screen info.

use xdpi * widthPixels and ydpi * heightPixels might get you what you want i think.