摺疊屏適配了解下
相信大家這兩天已經被三星和華為的摺疊屏手機給刷爆朋友圈了。
三星Galaxy Fold 售價1980美元,約合人民幣13376元

HUAWEI Mate X 售價2299歐元,相當於人民幣1.75萬元

朋友圈發關於摺疊屏的訊息主要分這兩種。
普通人: 哇!摺疊屏,螢幕變大了,看電影打遊戲肯定更爽了,不過這玩意肯定不抗摔吧,換個屏得多少錢!
程式設計師: 臥槽!異形屏還沒適配完呢,這尼瑪還得適配!

別擔心,小編今天就帶你來詳細剖析一下摺疊屏!
如何適配摺疊屏
摺疊屏在視覺效果來說就是,螢幕變大了,手機變平板了。這樣就要求我們的APP在可摺疊裝置展開時,當前應用頁面必須無縫延續到另一個螢幕,並可自動調整大小匹配新的佈局,反之亦然。也就是說,應用程式需要準備好在多個螢幕(不同解析度、密度等)之間切換。

其實Google之前有其應對的策略,在去年的 Android Dev Summit 上,Google 就已經宣佈將要對摺疊屏提供“Screen Continuity(螢幕連續性)”的原生系統支援,並將這項技術稱之為: Foldables。 利用這種柔性顯示技術,App 可以做到摺疊屏裝置上的適配工作。

下面我們來看如何實現這種技術:
執行時配置變更 – 系統預設
摺疊/展開的操作過程將觸發系統嚮應用傳送新佈局的配置更改,包括smallestScreenSize, screenSize 和 screenLayout 的配置
每當發生配置更改時,Android 預設情況下會重啟正在執行的 Activity(先後呼叫onDestroy()和 onCreate())。目的是使用與新裝置匹配的備用資源自動重新載入您的應用。
當 Activity 重啟時,恢復之前的狀態很重要。在銷燬 Activity 之前,可以呼叫onSaveInstanceState()來儲存應用狀態的資料;之後在 onCreate()或onRestoreInstanceState()中恢復 Activity 狀態。
不要在活動的 OnDestroy()中呼叫 finish()或自行終止程序,否則將導致 APP 在裝置摺疊或展開時關閉。
執行時配置變更 – 自行處理
如果因效能限制等因素希望在不自動重啟 Activity 的情況下處理配置更改,您需要在應用清單 manifest 中增加 android:configChanges 屬性,並至少包含以下配置值:

當指定的屬性(可摺疊裝置的摺疊/展開時觸發)發生變化時,MyActivity 不會重啟 , 而是會收到對 onConfigurationChanged()的呼叫,在此方法中處理配置變更,更新檢視佈局、重新載入資源。通過此方法即能實現在系統不重啟 Activity 的情況下重置 UI。
總的來說,摺疊屏的適配有點類似平板+旋轉屏的綜合體,也需要配置檔案+多佈局。
如何模擬摺疊屏
上面我們已經講了如何適配摺疊屏,這時候肯定有同學要說了:適配毛線啊,一個手機1W7,小公司會給配測試機?自己買得起?所以還是不要適配了!
作為一個有夢想的開發者,能被這點困難打到嗎?
買不起我們還沒發用虛擬機器麼,接下來碼仔帶大家一步一步實現摺疊屏虛擬機器的建立。
1、進入 Android Studio-> AVD Manager(Android Studio 可在 Google 網下載地址:https://developer.android.google.cn/studio/install )
2、建立虛擬機器

3、選擇裝置 : 平板電腦> Nexus 10

4、選擇系統映象 : 可選擇 Android9.0 開源專案映象(可下載)

或者選擇 Android 9.0 Google 映象(可下載)

5、配置方法 : 選擇 Portrait,其他使用預設值

6、執行AVD

7、下載摺疊屏模擬器 : FoldableEmulator_1.01.apk ,可進入下面的網頁進行下載 : https://developer.samsung.com/galaxy/foldable/test
8、安裝摺疊屏模擬器APK
9、授予許可權

“SYSTEM_ALERT_WINDOW”許可權也可以在 activity 中授予,在應用程式啟動時顯示,無需使用上述命令授予。
10、模擬使用

摺疊屏的適配和模擬器的使用介紹給大家了,大家還不趕緊去搞一波?
想要更多螢幕適配教學資料與視訊可以進群: 4112676 ,驗證:螢幕適配資料 即可