国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

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

2019-10-21 21:48:10
字體:
來源:轉載
供稿:網友

寫在前面

Android全面屏的手機越來越多了,要開始考慮應用適配全面屏的問題了,查了查相關文章,總結一下.

聲明最大屏幕寬高比

Android,全面屏,異形,適配

以上圖片來自Google Developer

通過文檔可以看出從Android7.0開始,應用的多窗口模式默認變為啟動,在多窗口模式下,默認已經進行了全面屏適配,如果我們不想應用在多窗口模式下運行,可以修改以下屬性:

android:resizeableActivity="false"

此時,我們可以手動進行設置最大屏幕寬高比:

android8.0及以上:

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

android7.1及以下版本:

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

需要注意的是,如果手動進行設置了最大寬高比,一定要將多窗口模式設置為false,否則不生效.

劉海屏

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

非全屏頁面

非全屏頁面即有狀態欄顯示的頁面,截止目前,基本上所有的劉海都只存在于狀態欄,所以非全屏頁面無需我們進行適配,系統會自動進行適配.

Android,全面屏,異形,適配
非全面屏

因為劉海也是黑色的,所以看上去沒有效果.

全屏未適配劉海屏頁面

全屏界面未適配劉海時,不能使用劉海區域,所以會出現出圖所示效果,嚴重時可能會將底部控件頂下去,為了解決這個問題,需要對其進行適配

Android,全面屏,異形,適配
全屏未適配劉海屏頁面

全屏適配劉海屏頁面

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

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

官方對于這三種模式的解釋:

Android,全面屏,異形,適配

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

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

Android,全面屏,異形,適配

全屏適配劉海屏頁面

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

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浑源县| 屯昌县| 公主岭市| 嵩明县| 康定县| 五原县| 玉林市| 彰化市| 安吉县| 鄢陵县| 宜阳县| 新蔡县| 缙云县| 辽中县| 久治县| 万州区| 磐石市| 新平| 利川市| 磴口县| 绵竹市| 嘉定区| 绥阳县| 济阳县| 阿瓦提县| 开平市| 马关县| 高雄市| 阜平县| 五原县| 修文县| 忻城县| 平原县| 达孜县| 浦县| 陇川县| 安龙县| 牟定县| 津市市| 乐昌市| 双峰县|