1. 程式人生 > >螢幕適配之帶虛擬按鍵手機螢幕適配

螢幕適配之帶虛擬按鍵手機螢幕適配

最近,在專案開發中遇到帶虛擬按鍵螢幕適配的問題。例如,華為P9、小米MAX等機型,整個螢幕的佈局都往上了,覺得應該是虛擬按鍵的問題。所以,經過一番折騰,找到如下解決方案:

  • 獲取螢幕實際顯示尺寸高度
//獲取螢幕尺寸,不包括虛擬功能高度
getWindowManager().getDefaultDisplay().getHeight();


  •  獲取螢幕原始尺寸高度
 private int getHeight() {
        int dpi = 0;
        Display display = getWindowManager().getDefaultDisplay();
        DisplayMetrics dm = new DisplayMetrics();
        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;
    }

經過兩個高度對比,就可以得到虛擬按鍵的高度。帶虛擬鍵盤的螢幕解析度是1920*1080,但實際上他是識別真實高度((1920-虛擬鍵盤高度)*1080)。 解決: 可以寫一套特定尺寸dimens檔案。例如,華為p9的虛擬按鍵的高度為120px。那就可以再加一套values-1800X1080,把1920X1080複製到 values-1800X1080裡面就可以了。完美解決!

相關推薦

螢幕虛擬按鍵手機螢幕

最近,在專案開發中遇到帶虛擬按鍵螢幕適配的問題。例如,華為P9、小米MAX等機型,整個螢幕的佈局都往上了,覺得應該是虛擬按鍵的問題。所以,經過一番折騰,找到如下解決方案: 獲取螢幕實際顯示尺寸高度

獲得華為手機劉海螢幕劉海高度寬度與虛擬按鍵背景顏色修改

package 哈哈哈哈哈哈哈哈哈哈;import android.content.Context; import android.graphics.Color; import android.os.Build; import android.os.Bundle; impor

關於螢幕下方的三個虛擬按鍵的一些摘要

 private View.OnLongClickListener mLongPressBackRecentsListener =    //長按back和recent兩個key             new View.OnLongClickListener() {         @Override  

Android開發如何獲取Android手機螢幕的大小(解析度、密度)

下面的程式碼即可獲取螢幕的尺寸:在一個Activity的onCreate方法中,編寫以下程式碼:DisplayMetricsmetric = new DisplayMetrics();getWindo

一條程式碼!關閉或開啟系統自虛擬按鍵

轉自:http://bbs.dospy.com/viewthread.php?tid=17038808&page=1&bbsid=354 本方法收集自網路!準備一,手機root二,手機安裝RE檔案管理過程一,用RE找到system/build.prop二,長

Unity UI GridLayoutGroup元件下的內容(進度條

好久沒有更新部落格了,藍廋啊。 今天寫一寫關於GripLayoutGroup元件的螢幕適配問題,以在ARPG遊戲中常用的經驗條適配來舉例子,以此來加深自己的記憶,以便在下次需要製作該功能時能夠快速完成。      以上是效果截圖。   一,制定標準寬高 &nbs

Cordova 小米8留海螢幕沉狀態列與 螢幕手機 從開始到結束 總結

 之前專案中打包的apk安裝到全面屏手機後,發現在應用下方出現了一大塊黑色區域(如:小米8),只有在系統中設定適配全面屏才能讓應用在全面屏手機中顯示正常,但是這種方式並不友好,而且有些手機廠商可能也沒有這種設定,所以還是需要我們再打包的時候就做一些相應的處理。 &l

Android華為手機虛擬按鍵顯示或隱藏

華為的一些手機的螢幕上的虛擬按鍵是可以顯示或者隱藏的,因此在佈局適配的時候就要考慮到這個問題,要不然當虛擬按鍵被隱藏後介面的佈局就會出現問題,下面給出一種解決方法,(原文來自:安卓適配碰到的一些問題) 因為虛擬按鍵的開啟會涉及到view的重繪,因此可以重寫根l

Android虛擬按鍵遮擋佈局

android適配中,有時候會遇到手機自帶的虛擬鍵遮擋住底部導航欄或其他佈局的情況,如下圖:這時候怎麼辦? 解決方法: 在activity的onCreate方法中看情況加上下面的程式碼: //狀態列 @ 頂部getWindow().addFlags(WindowMan

Android 螢幕 dimens

相信做手機端的 App 的小夥伴,只要是產品稍微大一點,就會面臨螢幕適配的問題,對於適配這個問題,網上眾說紛紜,以前雖然有零零散散的看過,但是沒有實踐過,也是在最近遇到這個需求的情況下才研究了一下,現在做個記錄。 1 參考連結 http://blog.csdn.net/qq_341

Android 系統自圖片裁剪功能(7.0、8.0、對了還有小米手機

前段時間寫了如何獲取相簿和拍照之後的照片並且進行顯示和上傳,這一次是如何進行圓形影象製作,經常看我寫的筆記的人會知道,我很懶。那麼我就懶的自定義了,目前需求就用原生的就好了,大神的輪子,我會在後面進行推薦。這篇筆記是依賴於:Android呼叫相簿、相機(相容6.0、7.0、8.0) 文

Android螢幕dp分包法

  前言 網上關於螢幕適配的文章已經鋪天蓋地了,為什麼我還要講?因為網上現在基本都是使用px適配,即每種螢幕解析度的裝置需要定義一套dimens.xml檔案。再加上有些手機還有虛擬按鍵(例如華為),這樣就還需要每個有虛擬按鍵的裝置加多一套dimens.xml檔案,再加上平板那些你會

Android 螢幕weight的使用

1. 要點:必須在LinearLayout的佈局內使用才有效果 2. 計算公式: 控制元件寬度=控制元件原始寬度+權重比例xLinearLayout剩餘寬度。 3. 實踐: <?xml version="1.0" encoding="utf-8"?> <LinearLa

關於直播系統和短視訊系統安卓手機螢幕的方向思路

直播與短視訊的接踵而至,將網際網路推向了網紅經濟時代,而智慧手機的更新迭代為二者的發展提供了“溫床”。但隨著Android機型的增多,裝置碎片化的程度也在不斷加深,因此為了保證使用者在不同Android機型下的體驗效果一致,我們需要對各種手機螢幕進行適配。下面我們就

Cordova 小米8留海螢幕 從開始到結束 總結

 之前專案中打包的apk安裝到全面屏手機後,發現在應用下方出現了一大塊黑色區域(如:小米8),只有在系統中設定適配全面屏才能讓應用在全面屏手機中顯示正常,但是這種方式並不友好,而且有些手機廠商可能也沒有這種設定,所以還是需要我們再打包的時候就做一些相應的處理。

手機媒體查詢

/適配iPhone XR/   @media only screen and (device-width: 375px) and (device-height: 812px) { .p_privileges .ui_page_title{ width: 100

css webapp手機螢幕字型大小

以下這段程式碼作用是,設定螢幕最大寬度640px,水平居中,以及不同螢幕下字型大小。可以將此放進common.css中使用: @media only screen and (min-width: 640px) { html { font-siz

瞭解真實的『REM』手機螢幕

rem 作為一個低調的長度單位,由於手機端網頁的興起,在螢幕適配中得到重用。使用 rem 前端開發者可以很方便的在各種螢幕尺寸下,通過等比縮放的方式達到設計圖要求的效果。 rem 的官方定義『The font size of the root element.

h5 手機螢幕—REM

一、rem、em和px之間的關係     使用rem之前,先得弄清楚rem、em和px之間的關係,特別是每一個單位的使用跟程式碼塊的繼承之間的關係:          通過對比會發現:只是單位使用不一樣但效果卻是截然不同的。rem和em都是相對單位,

html5手機螢幕

<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes"