Android擷取螢幕實際高度跟顯示高度,判斷Android裝置是否擁有虛擬功能鍵

來源:互聯網
上載者:User

標籤:view   types   int   顯示   virt   eal   new   svi   metrics   

一般的擷取螢幕尺寸,但是不包括虛擬功能高度
/** * 擷取螢幕尺寸,但是不包括虛擬功能高度 * * @return */public int getNoHasVirtualKey() {    int height = getWindowManager().getDefaultDisplay().getHeight();    return height;}

但是今天我們測試找我就說你的webview介面有問題呀下面怎麼一塊空白,我看看就發現空白的手機是華為的有軟鍵盤的那種

我們這個方法擷取的高度不包含虛擬鍵盤的高度

通過反射,擷取包含虛擬鍵的整體螢幕高度
/** * 通過反射,擷取包含虛擬鍵的整體螢幕高度 * * @return */private int getHasVirtualKey() {    int dpi = 0;    Display display = getWindowManager().getDefaultDisplay();    DisplayMetrics dm = new DisplayMetrics();    @SuppressWarnings("rawtypes")    Class c;    try {        c = Class.forName("android.view.Display");        @SuppressWarnings("unchecked")        Method method = c.getMethod("getRealMetrics", DisplayMetrics.class);        method.invoke(display, dm);        dpi = dm.heightPixels;    } catch (Exception e) {        e.printStackTrace();    }    return dpi;}
虛擬鍵的高度
getHasVirtualKey() - getNoHasVirtualKey()
隱藏虛擬按鍵
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {    ((Activity) context).getWindow().getDecorView().setSystemUiVisibility(            View.SYSTEM_UI_FLAG_LAYOUT_STABLE                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION                     | View.SYSTEM_UI_FLAG_FULLSCREEN                     | View.SYSTEM_UI_FLAG_IMMERSIVE);//API19} else {    ((Activity) context).getWindow().getDecorView().setSystemUiVisibility(            View.SYSTEM_UI_FLAG_LAYOUT_STABLE                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION                     | View.SYSTEM_UI_FLAG_FULLSCREEN     );}

好了就這樣

Android擷取螢幕實際高度跟顯示高度,判斷Android裝置是否擁有虛擬功能鍵

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.