1.隨着科技的發展,我們可以看到從iphoneX的劉海屏開始,引發了各種全面屏和異形屏的出現。這是科技的進步,但是對於各大的應用廠商來說,苦不堪言。
2.當然 ,吐槽歸吐槽,我們還是要理智的去對待這個事件的,因為我們要對我們應用的用戶負責,為我們的產品負責,為我們的money負責。
3.早在很久以前,當16:9,4:3, 3:2 等不同形狀的屏幕的時候,我們用了showAll和黑邊來適配我們的應用,但是由於影響美觀,我們走上了適配的道路,畢竟科技是進步的。
4.前期的適配,我們選取了16: 9為基礎的分辨率,采用了fixedWith去固定寬度,因為那會兒都是寬屏,我們選取寬高比最大的來做基准分辨率,那么我們固定的內容區域,一定是能夠展示到屏幕內的,至於為什么,你們可以把上面的比例轉換成一樣的,比如寬度48,那么就是 48:27, 48:36, 48:32, 這樣就容易理解了。
5.那么當全面屏適配出來后,從寬屏到長屏,16:9 繼續發展為 18:9,16:9的fixedWidth明顯不夠顯示18:9的內容, 而且后續還會有20:9,21:9,讓我們吐血。
這個時候我不知道你們是怎么適配的,我為了保證以前產品的穩定性,我就針對16:9以上比例的產品進行了FixedHeight,你可以用第四點的方法算下,16:9的用FixedHeight一定是最合適的,因為長度一直變長。
接着我會計算出相對應的屏幕偏移量,然后把產品內容按比例橫移,這個對於有canvas的creator就很棒了。我們手擼代碼的絕對是噩夢,特別在產品矩陣巨大的情況下。
6.接下來談談折疊屏。
其實我們以上的2種屏幕適配方案,在這種手機上單獨打開都是可以適配的,唯一要調整的就是背景圖的大小。
7.但是問題來了,它要在你玩着游戲的過程中切換屏幕的大小,那么就是長屏和寬屏的切換,是不是哭暈廁所。GLview要實習切換,有的人說跟翻轉屏幕一樣做就行,但是,前提是你做了相對布局,以前也沒想過會有這種問題啊。
8.后來我思考了一個方案,反正都是顯示16:9的,那我就把layer設計成一個16:9的節點,其他精靈都防止在上面,背景圖也是在上面居中顯示。然后貼邊精靈用相對屏幕的距離進行適配。萬幸可以做,但是就是適配周期有點長。
9.大家對cocos適配有不同方案的可以回復里說說。