Android全面屏與異形(劉海)屏的適配教程

寫在前面

創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來,先為治多等服務(wù)建站,治多等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為治多企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

Android全面屏的手機(jī)越來越多了,要開始考慮應(yīng)用適配全面屏的問題了,查了查相關(guān)文章,總結(jié)一下.

聲明最大屏幕寬高比

Android全面屏與異形(劉海)屏的適配教程

以上圖片來自Google Developer

通過文檔可以看出從Android7.0開始,應(yīng)用的多窗口模式默認(rèn)變?yōu)閱?dòng),在多窗口模式下,默認(rèn)已經(jīng)進(jìn)行了全面屏適配,如果我們不想應(yīng)用在多窗口模式下運(yùn)行,可以修改以下屬性:

android:resizeableActivity="false"

此時(shí),我們可以手動(dòng)進(jìn)行設(shè)置最大屏幕寬高比:

android8.0及以上:

<activity android:maxAspectRatio="2.4">
 ...
</activity>

android7.1及以下版本:

<meta-data android:name="android.max_aspect" android:value="2.4" />

需要注意的是,如果手動(dòng)進(jìn)行設(shè)置了最大寬高比,一定要將多窗口模式設(shè)置為false,否則不生效.

劉海屏

劉海屏適配分為全屏已適配劉海屏,全屏未適配劉海屏和非全屏頁面,

非全屏頁面

非全屏頁面即有狀態(tài)欄顯示的頁面,截止目前,基本上所有的劉海都只存在于狀態(tài)欄,所以非全屏頁面無需我們進(jìn)行適配,系統(tǒng)會(huì)自動(dòng)進(jìn)行適配.

Android全面屏與異形(劉海)屏的適配教程
非全面屏

因?yàn)閯⒑R彩呛谏?所以看上去沒有效果.

全屏未適配劉海屏頁面

全屏界面未適配劉海時(shí),不能使用劉海區(qū)域,所以會(huì)出現(xiàn)出圖所示效果,嚴(yán)重時(shí)可能會(huì)將底部控件頂下去,為了解決這個(gè)問題,需要對(duì)其進(jìn)行適配

Android全面屏與異形(劉海)屏的適配教程
全屏未適配劉海屏頁面

全屏適配劉海屏頁面

通過查看WindowManager的源碼可以看到共有3種顯示模式,:

 //默認(rèn)情況,全屏頁面不可用劉海區(qū)域,非全屏頁面可以進(jìn)行使用
 public static final int LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT = 0;
 //不允許使用劉海區(qū)域
 public static final int LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER = 2;
 //允許頁面延伸到劉海區(qū)域
 public static final int LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES = 1;

官方對(duì)于這三種模式的解釋:

Android全面屏與異形(劉海)屏的適配教程

通過查看上面的文檔,則可以進(jìn)行全屏界面的適配:

 var lp = window.attributes
 lp.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
 window.attributes = lp

Android全面屏與異形(劉海)屏的適配教程

全屏適配劉海屏頁面

以上方案是Google官方的適配方案,部分廠商并未使用此方案,而是使用自家API進(jìn)行全面屏適配,詳情可以查看各手機(jī)廠商官方文檔.

OPPO:https://open.oppomobile.com/wiki/doc#id=10159

VIVO:https://dev.vivo.com.cn/doc/document/info?id=103

HUAWEI:https://mini.eastday.com/bdmip/180411011257629.html

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)創(chuàng)新互聯(lián)的支持。

當(dāng)前文章:Android全面屏與異形(劉海)屏的適配教程
網(wǎng)站網(wǎng)址:http://www.muchs.cn/article40/ihpgho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、企業(yè)網(wǎng)站制作、標(biāo)簽優(yōu)化網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)