获取屏幕真实高度包含NavigationBar(底部虚拟按键)

来源:互联网 发布:压实度的数据 编辑:程序博客网 时间:2024/06/05 19:33
</pre><pre>
public int getScreentHeight() {  
    int heightPixels;  
    WindowManager w = this.getWindowManager();  
    Display d = w.getDefaultDisplay();  
    DisplayMetrics metrics = new DisplayMetrics();  
    d.getMetrics(metrics);  
    // since SDK_INT = 1;  
    heightPixels = metrics.heightPixels;  
    // includes window decorations (statusbar bar/navigation bar)  
    if (Build.VERSION.SDK_INT >= 14 && Build.VERSION.SDK_INT < 17)  
        try {  
            heightPixels = (Integer) Display.class  
                    .getMethod("getRawHeight").invoke(d);  
        } catch (Exception ignored) {  
        }  
    // includes window decorations (statusbar bar/navigation bar)  
    else if (Build.VERSION.SDK_INT >= 17)  
        try {  
            android.graphics.Point realSize = new android.graphics.Point();  
            Display.class.getMethod("getRealSize",  
                    android.graphics.Point.class).invoke(d, realSize);  
            heightPixels = realSize.y;  
        } catch (Exception ignored) {  
        }  
    Log.e("realHightPixels-heightPixels", heightPixels + "width");  
    return heightPixels;  
}  
0 0