也许这是一个有用的方法:参考
Icon Design Guidelines根据屏幕密度,状态(通知)栏只有三个不同的高度:
> 20px的LDPI
> 32px用于MDPI
HDPI为> 48px
因此,如果您使用DisplayMetrics的densityDpi检索设备的屏幕密度,您将知道要减去哪个值
所以它可能看起来像这样:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int myHeight = 0;
switch (metrics.densityDpi) {
case DisplayMetrics.DENSITY_HIGH:
Log.i("display", "high");
myHeight = display.getHeight() - 48;
break;
case DisplayMetrics.DENSITY_MEDIUM:
Log.i("display", "medium/default");
myHeight = display.getHeight() - 32;
break;
case DisplayMetrics.DENSITY_LOW:
Log.i("display", "low");
myHeight = display.getHeight() - 24;
break;
default:
Log.i("display", "Unknown density");