my code:
Display display = activity.getWindowManager().getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayM
This piece of code works for me (if you don't mind to use undocumented methods):
Display d = getWindowManager().getDefaultDisplay();
int width, height;
Method mGetRawH;
Method mGetRawW;
try {
mGetRawH = Display.class.getMethod("getRawWidth");
mGetRawW = Display.class.getMethod("getRawHeight");
width = (Integer) mGetRawW.invoke(d);
height = (Integer) mGetRawH.invoke(d);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
//You should care about orientation here
int o = getResources().getConfiguration().orientation;
if (o == Configuration.ORIENTATION_PORTRAIT) {
if (width > height) {
int tmp = width;
width = height;
height = tmp;
}
} else if (o == Configuration.ORIENTATION_LANDSCAPE) {
if (width < height) {
int tmp = width;
width = height;
height = tmp;
}
}
Log.d("d", "w=" + width + " h=" + height);
1280 x 752 - landscape 800 x 1232 - portrait
This 48 px are for the Andriod default notification bar...
Actually device full screen width=800 and height=1280 (including status bar, title bar). If you run your code to get display size, the system will not include status bar height and title bar height, so you will get height as 1232 (1280-(status bar height + title bar height)).