Android 啟動(dòng)圖適配

3.15更新,項(xiàng)目上線后硝训,在華為某些機(jī)型上出現(xiàn)了崩潰的情況

崩潰日志

原因是高分辨率的圖片放置到了低dpi的drawable文件夾中的,對(duì)應(yīng)就是我們的drawable-long文件夾楞卡,但為什么其他機(jī)型不會(huì)出問題呢柏副?我摸索了一下,發(fā)現(xiàn)這臺(tái)華為機(jī)型被用戶調(diào)節(jié)了顯示設(shè)置

這里顯示大小調(diào)大了道川,相當(dāng)于把屏幕的dpi調(diào)小了午衰,從而加載drawable-long中的圖片時(shí)會(huì)把圖片放大,導(dǎo)致bitmap too large的問題冒萄。

一般別的機(jī)型只能調(diào)節(jié)字體大小臊岸,但無奈華為市場份額較高,肯定要兼容尊流,所以這種方案不能用了帅戒。

我的解決方法是用回9.png的方案,之前測試不成功是因?yàn)樽约褐谱?.png圖的時(shí)候底部和右邊的線畫錯(cuò)了奠旺,導(dǎo)致顯示區(qū)域出現(xiàn)問題蜘澜,重新制作就好了。


原文


眾所周知响疚,安卓不同機(jī)型的屏幕尺寸千差萬別鄙信,百花齊放,但在很長一段時(shí)間里忿晕,安卓手機(jī)屏幕的長寬比大致都在16:9上下浮動(dòng)装诡。所以我們之前做APP啟動(dòng)圖的時(shí)候,設(shè)計(jì)往往只會(huì)出一張16:9的圖給我們践盼,在不同機(jī)型上不會(huì)有太明顯的拉伸效果鸦采。

直到出現(xiàn)了全面屏的機(jī)型,特別是屏幕比例在2:1以上的機(jī)型咕幻,如果還是用一張16:9的圖去顯示渔伯,那么拉伸效果是很明顯的,我以微信的啟動(dòng)圖為例子肄程,在1440*2960的Pixel 3XL機(jī)型上锣吼,用16:9的啟動(dòng)圖是這樣的效果(地球都變成橢圓了)

1440*2960的Pixel 3XL顯示16:9的圖片

這種情況一般有幾種解決辦法

1、把啟動(dòng)圖制作成9.png圖蓝厌,9.png是我們安卓開發(fā)的老朋友了玄叠,一般這種圖片拉伸問題都可以用9.png來解決,但啟動(dòng)圖有點(diǎn)特殊拓提,顯示完啟動(dòng)圖后常常會(huì)顯示開屏廣告读恃,如果開屏頁面的布局和廣告邏輯比較復(fù)雜(像我司項(xiàng)目的開屏,既有半屏廣告又有全屏廣告,還有g(shù)if寺惫、視頻廣告等)疹吃,在原有布局不改動(dòng)的情況下,用了9.png會(huì)導(dǎo)致各種奇怪的問題

2肌蜻、把開屏圖制作成layer-list的drawable文件互墓,底層layer設(shè)置成純色(如純白純黑,根據(jù)開屏圖顏色而定)蒋搜,上層放置關(guān)鍵元素(如項(xiàng)目logo)篡撵,這種方式適合開屏圖比較簡單,而且開屏圖背景可以和底層顏色融合的情況

3豆挽、制作多種尺寸的開屏圖育谬,分別放到不同的drawable文件夾下,考慮到資源打包的大小和UI的工作量帮哈,我們分別準(zhǔn)備16:9和2:1的開屏圖也夠用了膛檀,然后問題在于,我們應(yīng)該把16:9和2:1的圖分別放到哪個(gè)文件夾下娘侍?我在模擬器選取了覆蓋主流屏幕的機(jī)型

16:9的啟動(dòng)圖我們根據(jù)圖片實(shí)際分辨率放置在drawable-xhdpi或者drawable-xxhdpi文件夾是比較合適的咖刃,那么2:1的應(yīng)該放在哪里呢? 查閱官方文檔憾筏,發(fā)現(xiàn)有這樣的限定符

即drawable-long和drawable-notlong嚎杨,分別對(duì)應(yīng)寬屏和非寬屏,但是這個(gè)限定符是API 4中增加的氧腰,描述中的WQVGA枫浙、WVGA、FWVGA在現(xiàn)今主流手機(jī)中也不存在了古拴,本著試一試也不會(huì)虧的精神箩帚,我嘗試在工程中增加了drawable-long文件夾,并把2:1的啟動(dòng)圖放進(jìn)去黄痪,運(yùn)行紧帕,奇跡出現(xiàn)了,Pixel 3和Pixel 3 XL這種全面屏的手機(jī)居然可以取到這個(gè)文件夾里的圖片桅打,而Nexus 4焕参、Nexus5、Nexus6等接近16:9的手機(jī)仍然是取drawable-xhdpi或者drawable-xxhdpi的文件夾油额,這就解決了全面屏手機(jī)啟動(dòng)圖拉伸的問題】讨悖看起來潦嘶,雖然drawable-long的文檔描述有點(diǎn)舊,但谷歌應(yīng)該是有不斷更新它的適配邏輯的崇众,我測試用的模擬器全部都基于Android5.1掂僵,而用我自己的Android 10真機(jī)測試也是沒有問題航厚,大致得出結(jié)論這個(gè)方案是可行的

1440*2960的Pixel 3XL顯示drawable-long里2:1的圖片


1440*2560的Nexus 6顯示?drawable-xxhdpi里16.9的圖片
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市锰蓬,隨后出現(xiàn)的幾起案子幔睬,更是在濱河造成了極大的恐慌,老刑警劉巖芹扭,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件麻顶,死亡現(xiàn)場離奇詭異,居然都是意外死亡舱卡,警方通過查閱死者的電腦和手機(jī)辅肾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來轮锥,“玉大人矫钓,你說我怎么就攤上這事∩岫牛” “怎么了新娜?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長既绩。 經(jīng)常有香客問我概龄,道長,這世上最難降的妖魔是什么熬词? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任旁钧,我火速辦了婚禮,結(jié)果婚禮上互拾,老公的妹妹穿的比我還像新娘歪今。我一直安慰自己,他們只是感情好颜矿,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布寄猩。 她就那樣靜靜地躺著,像睡著了一般骑疆。 火紅的嫁衣襯著肌膚如雪田篇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天箍铭,我揣著相機(jī)與錄音泊柬,去河邊找鬼。 笑死诈火,一個(gè)胖子當(dāng)著我的面吹牛兽赁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼刀崖,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼惊科!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起亮钦,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤馆截,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蜂莉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜡娶,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年巡语,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翎蹈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡男公,死狀恐怖荤堪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情枢赔,我是刑警寧澤澄阳,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站踏拜,受9級(jí)特大地震影響碎赢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜速梗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一肮塞、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧姻锁,春花似錦枕赵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至涧黄,卻和暖如春篮昧,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背笋妥。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工懊昨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人春宣。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓疚颊,卻偏偏與公主長得像狈孔,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子材义,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350