Android 7.0系统计算屏幕高度出错

使用Android 7.0系统(1920 x 1080)但是计算出来的高度只有1812,使用Android 6.0系统,同样的代码计算出来的高度就是1920的,那么在7.0系统上面还有108的高度哪里去了?

--------------这样的题目应该附上代码。

这个和屏幕密度有关,代码计算出来的高度是像素,你转成dp看看一样吗?
public int pxToDp(Context context,int px) {

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();

int dp = Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT));

return dp;

}

你先转过去打印下结果看看

/**
 * 获取状态栏的高度
 *
 * @param context
 * @return
 */
private static int getStatusHeight(Context context) {
    int statusHeight = 0;
    Rect localRect = new Rect();
    ((Activity) context).getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect);
    statusHeight = localRect.top;
    if (0 == statusHeight) {
        Class<?> localClass;
        try {
            localClass = Class.forName("com.android.internal.R$dimen");
            Object localObject = localClass.newInstance();
            int i5 = Integer.parseInt(localClass.getField("status_bar_height").get(localObject).toString());
            statusHeight = context.getResources().getDimensionPixelSize(i5);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return statusHeight;
}
    //你输出状态栏高度,自己算下,其实最直接的方法自定义一个view,在onMeasure()logcat出