The following should give you the actual display size as a Point:
private Point getDisplaySize(Context context) {
if (Build.VERSION.SDK_INT >= 17) {
return getDisplaySizeMinSdk17(context);
} else if (Build.VERSION.SDK_INT >= 13) {
return getDisplaySizeMinSdk13(context);
} else {
return getDisplaySizeMinSdk1(context);
}
}
@TargetApi(17)
private Point getDisplaySizeMinSdk17(Context context) {
final WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
final Display display = windowManager.getDefaultDisplay();
final DisplayMetrics metrics = new DisplayMetrics();
display.getRealMetrics(metrics);
final Point size = new Point();
size.x = metrics.widthPixels;
size.y = metrics.heightPixels;
return size;
}
@TargetApi(13)
private Point getDisplaySizeMinSdk13(Context context) {
final WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
final Display display = windowManager.getDefaultDisplay();
final Point size = new Point();
display.getSize(size);
return size;
}
@SuppressWarnings("deprecation")
private Point getDisplaySizeMinSdk1(Context context) {
final WindowManager windowManager = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
final Display display = windowManager.getDefaultDisplay();
final Point size = new Point();
size.x = display.getWidth();
size.y = display.getHeight();
return size;
}