導航:首頁 > 操作系統 > 安卓的劉海屏如何適配

安卓的劉海屏如何適配

發布時間:2024-10-24 13:46:17

『壹』 android 屏幕適配之bug 劉海屏、水滴屏

上述兩種屏幕都可以統稱為劉海屏,不過對於右側較小的劉海,業界一般稱為水滴屏或美人尖。

目前國內流行的手機廠商主要有:vivo、oppo、華為、小米。各廠商對劉海屏的適配都大不相同,各自有各自對劉海屏的適配API,具體的適配方法可以閱讀相應的官網:
VIVO: https://dev.vivo.com.cn/documentCenter/doc/103

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

小米: https://dev.mi.com/console/doc/detail?pId=1293

華為: https://developer.huawei.com/consumer/cn/devservice/doc/50114 ?

具體的適配方法這里不作一一介紹,按照以上四大廠商官網所給出的適配方法,這里給出四大廠商判斷/獲取劉海屏的工具類:

}

根據四大廠商官網所提供的適配方案,其中需要在AndroidManifest中添加標簽(具體說明請瀏覽官網):

在對於Android P的適配中Google給出了統一的方案(基於Android API 28):

<meta-data android:name="android.vendor.full_screen" android:value="true"/>

在Build.VERSION.SDK_INT >= 28中提供了以下介面:

DisplayCutout類介面:主要用於獲取凹口位置和安全區域的位置等。

方法

介面 說明: 返回Rects的列表,每個Rects都是顯示屏上非功能區域的邊界矩形。

返回安全區域距離屏幕左邊的距離,單位是px。

返回安全區域距離屏幕右邊的距離,單位是px。

返回安全區域距離屏幕頂部的距離,單位是px。

返回安全區域距離屏幕底部的距離,單位是px。

模式:

模式說明:只有當DisplayCutout完全包含在系統欄中時,才允許窗口延伸到DisplayCutout區域。 否則,窗口布局不與DisplayCutout區域重疊

該窗口決不允許與DisplayCutout區域重疊。

『貳』 為何沒給劉海屏做適配MIUI:不怪我

全面屏時代,很多國產品牌發布了多款劉海屏機型,對於這類機型,官方基本都會幫忙做屏幕適配。不過,對於一些小米舊款機型來說,即使升級到了Android9.0版本,部分應用也依然沒有對劉海屏做適配,使用起來相當難受。

對此,MIUI官方進行了解釋。小米MIUI高級工程師李偉星發文稱:「在Android O時代,原生安卓還不支持劉海,各大廠商分別設計了一套自己的介面標准,推動應用開發者適配支持,廠家和開發者都費老大勁了。

到了Android P,Google推出統一介面,我們想當然認為武林盟主出手,大家一定會馬首是瞻。所以我們在做老機型升級P時,系統就切換回標准介面方案,沒想到嗝P了,很多應用一直都沒適配好谷歌的介面方案。」

同時,李偉星還表示,目前MIUI正在努力優化,讓系統同時兼容小米和谷歌兩套介面方案,開發版近期會升級支持主流 游戲 ,穩定版爭取三月底推送。

『叄』 Unity屏幕適配之——劉海屏

iphoneX由於帶有各種感測器,不得不搞了個劉海屏,各個國產手機也跟了一波風,手機感測器塞的很爽,但苦逼的開發者又增加了新工作——為app增加劉海屏適配。

在游戲裡面,很多UI都是緊貼屏幕邊緣的,這樣就會被劉海屏的劉海蓋住,無法點擊。網上找了幾種適配方案,有的是直接縮短游戲寬度,劉海的部分是一條整齊的黑邊。我覺得這樣的方案不好,畢竟它縮短了游戲顯示寬度;另一種方案是只將UI的部分向劉海內側推動一截,其餘不變,場景還是原來的寬度。我覺得這個方案比較好一些,相對不影響游戲的視角觀感。

實現方式:
1.首先要檢測是否是劉海屏。這里可以使用平台和解析度來判斷,也可以讀取SystemInfo.deviceModel獲取設備型號,或者用這個UnityEngine.iOS.Device.generation也可以,主要是要實現這么個介面就好。

2.如果是劉海屏,對需要設置適配的UI(只有那些交互元素貼邊的UI需要適配,其餘不需要),設置其最底層Panel的offsetMin或者offsetMax (有的博客是直接在劉海屏上同時設置offsetMin和offsetMax,也就是四邊都往裡縮進,我覺得不太好,畢竟只有一邊有劉海,其他的邊不需要縮進,否則會縮小游戲場景部分的顯示範圍) 。這里設置的寬度值我參考他人的博客使用44f,效果還是可以的。

3.如果你的游戲允許左右轉屏,那麼還要監聽屏幕轉動事件,再根據屏幕方向去設置offsetMin或offsetMax。

最後,現在貌似出了一種技術,可以把感測器直接藏在透明的屏幕下方;也有廠商把感測器放在手機夾層里,需要使用的時候再從屏幕上方彈出來。總之希望劉海屏和各種類似的Notch屏趕快淘汰,一整面完好無損的大屏才是審美,Notch什麼的太逼死強迫症了。

『肆』 有劉海屏的安卓手機玩吃雞是不是自動適配

當然不是,需要手機本身的軟體適配

閱讀全文

與安卓的劉海屏如何適配相關的資料

熱點內容
prom文件夾 瀏覽:726
不規則土方的演算法 瀏覽:209
tor加密貨幣網站 瀏覽:449
linux轉ansi 瀏覽:736
網站源碼怎麼查 瀏覽:687
高cpu雲伺服器 瀏覽:365
androidwebrtcaecm 瀏覽:981
阿里雲部署java 瀏覽:636
雲是不是就是個大的伺服器 瀏覽:581
如何建立linux日誌管理伺服器 瀏覽:772
悟空頭圖標是什麼APP 瀏覽:555
linuxandroid虛擬機 瀏覽:281
ps李濤pdf 瀏覽:638
linuxfork線程 瀏覽:97
易語言編譯改名 瀏覽:723
阿里伺服器都提供什麼 瀏覽:756
cf打開伺服器接不上怎麼辦 瀏覽:901
linux下more命令 瀏覽:402
des演算法運算位數 瀏覽:375
珠海建行貸款解壓 瀏覽:635