快速完成Android全面屏適配

最近發(fā)布的手機(jī)里面最火的就是全面屏了,這就涉及到了我們項(xiàng)目適配全面屏手機(jī)的問題。本篇文章就是記錄一下剛花一點(diǎn)時(shí)間做完的Android全面屏適配的一些東西。先看一下沒有適配的時(shí)候在小米MIX2上的實(shí)際效果

20170804_122245.jpg
  1.大家看下目前市面上目前發(fā)布的全面屏手機(jī)
  機(jī)型                                   屏幕縱橫比    
  小米MIX                         17:9
  小米MIX2                            18:9
  LG G6                         18:9    
  Samsung Galaxy S8          18.5:9 
  Essential Phone            19:10  
  vivo  X20                             18:9
  meizu MX7                          暫時(shí)未知
  金立                                     暫時(shí)未知
  努比亞                                 暫時(shí)未知

  目前我手里用的測(cè)試機(jī)是同事的小米MIX2比例是18/9,所以項(xiàng)目跑起來后上下留有黑邊,官方給的建議是設(shè)置max_aspect比例是2.1,目前的比例都是在這范圍之內(nèi),所以在Androidmanifest清單文件里面添加
<meta-data
            android:name="android.max_aspect"
            android:value="2.1" />
  跑起來項(xiàng)目明顯的上下黑邊都沒有了,但是出來別的問題,就是我們的popwindow從底部彈出的位置會(huì)出現(xiàn)間隙,之前有判斷是否有底部虛擬按鍵,在手勢(shì)操作收索的時(shí)候,出入點(diǎn)高度變化就會(huì)出現(xiàn)間隙。所以pop的高度就少了底部虛擬按鍵的高度,所以設(shè)置pop的高度需要加上底部的高度。
Rect frame = new Rect();
        mContext.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
        statusBarHeight = frame.top;
        DisplayMetrics metrics = new DisplayMetrics();
        mContext.getWindowManager().getDefaultDisplay()
                .getMetrics(metrics);
        mWidth = metrics.widthPixels;
        if (ConstantS.ISMAXScreenRatio) {//全面屏
            statusBarHeight = 0;
            mHeight = metrics.heightPixels + ViewUtil.getBottomStatusHeightNew(context);
        } else {//普通屏幕
            mHeight = metrics.heightPixels;
        }
        setWidth(mWidth);
        setHeight(mHeight);
  在設(shè)置Location的位置的時(shí)候,全面屏的位置設(shè)置為0。當(dāng)然這個(gè)是我項(xiàng)目里面的東西,大家可以看情況而定。
showAtLocation(view, Gravity.BOTTOM, 0, statusBarHeight);

statusBarHeight的高度就是模擬鍵盤的高度。
然后跑起來看下效果吧

![Uploading 20170804_122545_892356.jpg . . .]
20170804_122545.jpg
一般來說項(xiàng)目里面彈出的popwindow的出入位置都會(huì)寫成公共的方法,所以盡可能寫成一個(gè)方法體這樣修改起來方便很多。好了就記錄到這里了。感謝大家的閱讀。。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容