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

安卓的劉海屏如何適配

發布時間: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什麼的太逼死強迫症了。

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

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

閱讀全文

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

熱點內容
linux下編輯命令 瀏覽:334
4台伺服器怎麼連接一個顯示器 瀏覽:502
重慶前端程序員私活app排行 瀏覽:560
櫻花跑酷地圖id加密碼 瀏覽:637
安卓怎麼動不動就更新軟體 瀏覽:877
pdf的意思 瀏覽:721
怎麼檢查fpga編譯錯誤 瀏覽:204
python編程usb 瀏覽:282
終端編譯器python 瀏覽:596
日線漲幅python 瀏覽:806
安卓手機怎麼調出應用 瀏覽:954
k大的教程文件解壓密碼 瀏覽:126
文件夾製作手機支架視頻 瀏覽:592
保密文件夾華為 瀏覽:251
java日歷演算法 瀏覽:304
鹿醫app群聊聊天記錄怎麼刪除 瀏覽:88
poop手機設置伺服器P地址 瀏覽:676
安卓手機怎麼傳到蘋果電腦上 瀏覽:730
建築智能化系統pdf 瀏覽:371
截斷的二進制指數退避演算法 瀏覽:725