Galaxy S8及S+全屏顯示適配
Galaxy S8及S8+分別搭載“5.8”與“6.2”大屏,高達84%的螢幕佔比為Galaxy S8及S8+在遊戲娛樂、觀看視訊時帶來深度沉浸式視覺體驗。但是與此同時S8卻有著一個奇葩的螢幕比例:18.5比9,螢幕解析度:2960×1440。通常我們在開發過程中android的標準設計圖為1920×1080,ios為1334×750,預設採用16比9的比例來設計效果圖。android機型眾多,解析度千奇百怪,這回三星又來添亂了,實際開發過程中還真遇到了三星S8的適配問題。
如果不去做適配的話,螢幕的兩端就會留有黑邊,相當討厭
其實解決APP顯示問題,除了第三方應用自行適配S8之外,S8自己也可以進行調節,S8
下面我們以開發者的身份去分析下這個問題,究其根本這個適配不過是個顯示的問題,我們只需要讓APP充滿全屏就可以,所以我做了如下嘗試:
1:給Activity設定各種noTitlebar,FullScreen,不起作用;
2:替換各種style樣式,不起作用;
3:修改targetSdkVersion, compileSdkVersion為高版本,依然不起作用。
通過觀察發現,凡是完美適配了18.5比9螢幕的App,在系統中已經預設是全屏應用程式了,選擇框灰掉無法點選。
所以判斷系統應該是通過檢測某個屬性或者許可權來區分當前App是否做好了適配。最後我們找到了"android.max_aspect"這個屬性。
開發者只需在App的AndroidManifest.xml檔案<application> </application>中新增如下程式碼:
<meta-data android:name="android.max_aspect" android:value="2.1" />
對只要這一行程式碼就搞定三星S8的適配,所以前面都是廢話,你要的程式碼就這一行,快快貼上複製到你的程式碼中吧。
Android 標準介面中,支援應用宣告其支援的最大螢幕高寬比(
<meta-data android:name="android.max_aspect"android:value="ratio_float" />
若開發者沒有宣告該屬性,ratio_float 的預設值為1.86,小於2.056,因此這類應用在三星S8上,預設不會全屏顯示,螢幕兩邊會留黑。