由於現在遇到了app適配全面屏,就寫了這篇博客來解釋下怎樣來做到適配。
1、什麼是全面屏?
概念
很多人可能把全面屏跟曲面屏混淆,其實這是兩個不同的概念。
爲什麼先要解釋一下全面屏,因爲這個詞在現在來講就是一個僞命題。全面屏字面意思就是手機的正面全部都是屏幕,100%的屏佔比。但是現在推出所謂“全面屏”手機的廠商沒有一個能達到全面的。
那麼下面來說一下Android開發領域對全面屏的理解和定義吧。
一般手機的屏幕縱橫比爲16:9,如1080x1920、1440x2560等,其比值爲1.77,在全面屏手機出現之前,Android中默認的最大屏幕縱橫比(maximum aspect ratio)爲1.86,即能夠兼容16:9的屏幕。
一些手機廠商爲了追求更大的屏幕空間以及更極致的用戶體驗,於是提高了屏幕縱橫比,17:9、19:10、18:9、18.5:9的手機開始進入市場,這些手機的屏幕縱橫比大大超過了1.86,這些手機被稱爲全面屏手機。
一般手機的屏幕縱橫比爲16:9,如1080x1920、1440x2560等,其比值爲1.777777……,全面屏手機出現之前,Android中默認的最大屏幕縱橫比(maximum aspect ratio)爲1.86,即能夠兼容16:9的屏幕。
一些手機廠商爲了追求更大的屏幕空間以及更極致的用戶體驗,於是提高了屏幕縱橫比,17:9、19:10、18:9、18.5:9的手機開始進入市場,這些手機被稱爲全面屏手機。
2、爲何需要適配
我們將targetSdkVersion的值改爲小於等於23,運行程序,我們會發現屏幕底部出現一個黑條。
3、如何適配
我在這裏直接寫解決方案:
測試手機 小米8 MIUI 9.5 Android code :8.1 API:27 分辨率 2248*1080
第一步:在Module級別app的Build.gradle中 查看當前targetSdkVersion的版本是多少 需要是>= 24
第二步:
1.在AndroidManifest.xml 文件中 當前啓動Activtiy中加上一條屬性:android:resizeableActivity = “true” 或者
這個屬性是android 7.0之後,用來開啓分屏模式的開關,自動去適配了全面屏
2.加上<meta-data android:name = "android.max_aspect" android.value="2.1"/>
這個2.1是怎麼來的呢,咱們通常所說的1920*1080的分辨率,屏幕比是16:9 也就是1920/1080=1.77777-->-->-->-->-->-->-->-->-->-->
我測試用的小米8的分辨率是2248*1080 屏幕比是19.5:9 也就是2248/1080=2.08 基本上這個數值已經涵蓋了目前,市面上的全面屏分辨率,不夠可以再加。
全面屏適配基本就是這樣,對全面屏適配還不是太瞭解,寫的不好的可以糾正。