Android屏幕適配之全面屏適配

引言

從2017年開始,全面屏之戰(zhàn)逐漸如火如荼的展開了饿肺,那么我們Android程序員又多了一個(gè)小事情坯认,就是解決全面屏適配的問題。

全面屏和以前的屏幕相比政恍,有以下幾點(diǎn)改變

  • 以前 16 : 9 的 比例 變成了 18 : 9褥符,甚至是 19 : 9 ...
  • 屏幕內(nèi)的虛擬導(dǎo)航鍵

解決方案來了

一、解決現(xiàn)實(shí)不全抚垃,黑邊的情況

方案一喷楣、

聲明方式

      <meta-data
                android:name="android.max_aspect"
                android:value="ratio_float"/>

ratio_float這個(gè)值怎么取呢?
其實(shí)就是高寬比鹤树。
傳統(tǒng)的手機(jī)高寬比是:16 : 9 即 16 / 9 ≈ 1.78
那么全面屏的手機(jī)寬高比:18 :9 即 18 / 9 = 2

但是這個(gè)時(shí)候铣焊,我們需要注意一下,現(xiàn)在很多手機(jī)都在追求更大的高寬比罕伯,即讓屏幕頂部和底部邊框越小越好曲伊,比如現(xiàn)在的「小米 mix 3 」


即他的高寬比是
19.5 / 9 ≈ 2.17
所以保險(xiǎn)起見,設(shè)置成為 2.2, 當(dāng)然這個(gè)值也不是固定的,如果有更新的手機(jī)上市坟募,沒準(zhǔn)我們還得改岛蚤。
即這樣設(shè)定就好了

    <meta-data 
              android:name="android.max_aspect" 
              android:value="2.2" />

方案二、

Android 7.0 google 默認(rèn)支持了分屏模式懈糯,即 Manifest 文件中配置 Activity 的

    android:resizeableActivity="true" 
注意:此設(shè)置只針對(duì)Activity生效涤妒,且增加了此屬性該activity也會(huì)支持分屏顯示。

那么這個(gè)時(shí)候就不需要再配置上面的 「最大屏幕高寬比」赚哗,就可以適配全面屏了她紫。

但是如果通過自定義控件將“分屏模式”禁止的話,就會(huì)出現(xiàn)屏幕 上下黑邊的效果屿储,非常丑贿讹。

方案三、

修改AndroidManifest.xml文件够掠,設(shè)置targetSdkVersion>=26民褂,就是應(yīng)用升級(jí)到O版本。
不需要設(shè)置其他任何屬性疯潭,默認(rèn)在任何縱橫比的屏幕都能全屏顯示赊堪。

(備注:有一種例外情況需要注意,應(yīng)用如果已經(jīng)適配到O版本袁勺,并且通過meta-data屬性android.max_aspect或者是android:MaxAspectRatio屬性設(shè)置了頁面支持的最大縱橫比雹食,同時(shí)又通過android:resizeableActivity=“false”設(shè)置了頁面不支持分屏,這個(gè)時(shí)候系統(tǒng)會(huì)按照應(yīng)用自己設(shè)置的最大縱橫比決定該頁面是否能全屏顯示期丰,如果應(yīng)用設(shè)置的最大縱橫比比手機(jī)屏幕比例小群叶,那應(yīng)用還是無法全屏顯示。)

二钝荡、啟動(dòng)頁適配

默認(rèn) UI 為我們切的啟動(dòng)頁面的圖是固定的街立,比如 1920*1080
這個(gè)能適配以前一般的分辨率的手機(jī),但是全面屏的出現(xiàn)埠通,我們會(huì)發(fā)現(xiàn)赎离,這個(gè)啟動(dòng)頁的圖片會(huì)被拉伸,一般是縱向拉伸端辱,因?yàn)?“高” 變大了梁剔。

那么這種情況的解決方法其實(shí)有這么幾種思路:

  • 讓美工將不同全面屏的分辨率的啟動(dòng)頁圖片進(jìn)行重新設(shè)計(jì),當(dāng)然舞蔽,這樣會(huì)稍微加大apk的體積
  • 如果啟動(dòng)頁設(shè)計(jì)的不是很復(fù)雜的話荣病,可以使用「.9圖」進(jìn)行設(shè)計(jì),這樣即使拉伸渗柿,也不會(huì)有很大的影響
  • 如果啟動(dòng)頁能用布局文件xml 來繪制出來的話个盆,當(dāng)然是極好的。

三、虛擬導(dǎo)航按鍵的優(yōu)化

本人還是覺得虛擬導(dǎo)航按鍵不是一個(gè)好東西颊亮,但是全面屏的出現(xiàn)柴梆,真的把我以前喜歡的"實(shí)體按鍵" 給舍棄掉了。

我倒是覺得替代以前的"實(shí)體按鍵"的最好的方法终惑,還是手勢(shì)操作绍在。起碼我覺得小米8 的手勢(shì)操作很 6 有沒有。再看看蘋果狠鸳,壓根就不同虛擬按鍵考慮好不揣苏。悯嗓。件舵。

不過,這是我自己的拙見脯厨,請(qǐng)各位虛擬按鍵愛好者铅祸,不要噴我,先行謝過合武。

依稀還記得適配虛擬按鍵是從華為開始的临梗,后來開始適配樂視,可是現(xiàn)在稼跳。盟庞。。

原則汤善,虛擬按鈕的顯示樣式什猖,其實(shí)根據(jù)當(dāng)前具體的頁面情況進(jìn)行調(diào)整,調(diào)整策略其實(shí)和status bar 的類似红淡。

可以通過

    window.setNavigationBarColor(int color)

來定義顏色不狮。

或者通過設(shè)置當(dāng)前activity 主題 或者設(shè)置application主題

在主題的樣式中設(shè)置:

      <item name="android:navigationBarColor">要設(shè)置的顏色值</item>

即可。

總結(jié)

頻繁的手機(jī)更新迭代在旱,雖然讓我們程序員多了一些事情可做摇零,但是卻也是我們喜聞樂見的事,手機(jī)在發(fā)展桶蝎,說明我們的行業(yè)也在發(fā)展呀驻仅,況且,解決這些問題也不是難事登渣。你說是不是呢噪服?

如果沒看懂我的文章,請(qǐng)觀看小米官網(wǎng)提供的方案(其實(shí)是一致的):
全面屏及虛擬鍵適配說明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末绍豁,一起剝皮案震驚了整個(gè)濱河市芯咧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖敬飒,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件邪铲,死亡現(xiàn)場離奇詭異,居然都是意外死亡无拗,警方通過查閱死者的電腦和手機(jī)带到,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來英染,“玉大人揽惹,你說我怎么就攤上這事∷目担” “怎么了搪搏?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長闪金。 經(jīng)常有香客問我疯溺,道長,這世上最難降的妖魔是什么哎垦? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任囱嫩,我火速辦了婚禮,結(jié)果婚禮上漏设,老公的妹妹穿的比我還像新娘墨闲。我一直安慰自己,他們只是感情好郑口,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布鸳碧。 她就那樣靜靜地躺著,像睡著了一般潘酗。 火紅的嫁衣襯著肌膚如雪杆兵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天仔夺,我揣著相機(jī)與錄音琐脏,去河邊找鬼。 笑死缸兔,一個(gè)胖子當(dāng)著我的面吹牛日裙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惰蜜,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼昂拂,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了抛猖?” 一聲冷哼從身側(cè)響起格侯,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤鼻听,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后联四,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撑碴,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年朝墩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了醉拓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡收苏,死狀恐怖亿卤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鹿霸,我是刑警寧澤排吴,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站杜跷,受9級(jí)特大地震影響傍念,放射性物質(zhì)發(fā)生泄漏矫夷。R本人自食惡果不足惜葛闷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望双藕。 院中可真熱鬧淑趾,春花似錦、人聲如沸忧陪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘶摊。三九已至延蟹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叶堆,已是汗流浹背阱飘。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留虱颗,地道東北人沥匈。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像忘渔,于是被迫代替她去往敵國和親高帖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345