Android Q適配(1)-------圖標(biāo)篇

前言:

Android Q在2019年的3月份發(fā)布了beta1版本拉岁,這算是近幾年Android版本改動中變化最大的一個(gè)版本凯沪,本文將分章節(jié)一一講解Android Q我們程序員應(yīng)該做的適配工作脉幢,本文章將分系列五鲫,本著作者對應(yīng)新特性進(jìn)行盡量全面的理解后,將經(jīng)驗(yàn)和成果與大家分享哩牍。那么開始吧界阁!

正文:

本文如題,圖標(biāo)篇挂据,可能有的同學(xué)認(rèn)為這沒啥好講的航背,感覺沒有意義,這里作者通過工作中的開發(fā)棱貌,表示圖標(biāo)還是需要一些適配工作的玖媚。尤其是從Android 8.0引入了矢量圖標(biāo)后,如今正式在Android Q強(qiáng)制使用了婚脱,所以如果大家不對圖標(biāo)進(jìn)行適配的話今魔,在Android Q上會出現(xiàn)顯示問題。

當(dāng)我們新建一個(gè)8.0以上的項(xiàng)目的時(shí)候障贸,AndroidStudio會自動給我們多創(chuàng)建2個(gè)文件夾mipmap-anydpi-v26和drawable-v24错森,還有drawable下的ic_launcher_background.xml如圖

image

當(dāng)我們點(diǎn)擊進(jìn)去會發(fā)現(xiàn),里面全部都是關(guān)于verctor的矢量圖標(biāo)篮洁,這時(shí)候如果小伙伴們不想做適配工作涩维,直接簡單粗暴的刪除掉這些文件,app在啟動時(shí)就會轉(zhuǎn)向去讀取png的圖標(biāo)文件,看似一切問題得到了解決瓦阐。

但是細(xì)心的小伙伴肯定留意到了蜗侈,從Android8.1開始,引入了圖標(biāo)的視差和脈動睡蟋,支持圖標(biāo)動態(tài)調(diào)整踏幻,只有當(dāng)你適配了矢量圖標(biāo)后才會啟動如圖

image

這個(gè)特性在Android Q上被強(qiáng)制啟動了,也就是說Android Q不會去對你的png圖標(biāo)進(jìn)行適應(yīng)顯示戳杀,而是會嘗試把你的png圖標(biāo)按照新特性來顯示该面,這時(shí)候你的app圖標(biāo)在Android Q上將會顯示小一圈,無法跟其他App的圖標(biāo)保持一致了信卡,如圖

image

左邊的刪除了矢量圖app在Android Q上顯示的比其他所有圖標(biāo)都小一圈隔缀,并且不支持動態(tài)特效,如果你認(rèn)為這確實(shí)是個(gè)適配問題傍菇,那么請接著往下看吧蚕泽,第一篇文章不想寫的太復(fù)雜,所以圖標(biāo)篇并不是簡簡單單的給程序員們看的桥嗤,其實(shí)也是UI小姐姐看的,畢竟做圖的是她們仔蝌,他們不提供素材泛领,一切都是白扯。

下面我會對谷歌官方推薦使用的矢量圖作圖辦法進(jìn)行講解和翻譯敛惊,部分文字渊鞋,圖片是截取自Google官方文檔,方便大家閱讀瞧挤。


自適應(yīng)啟動器圖標(biāo)锡宋,它可以在不同設(shè)備型號上顯示為不同的形狀。

您可以通過定義 2 個(gè)圖層(由一個(gè)背景圖層和一個(gè)前景圖層組成)來控制自適應(yīng)啟動器圖標(biāo)的外觀特恬。您必須提供圖標(biāo)圖層作為可繪制資源执俩,而不使用圖標(biāo)輪廓周圍的蒙版或背景陰影。

圖標(biāo)的設(shè)計(jì)要求

  • 兩個(gè)圖層的尺寸都必須調(diào)整為 108 x 108 dp癌刽。
  • 已屏蔽的視口中顯示的圖標(biāo)的內(nèi)層為 72 x 72 dp役首。
  • 系統(tǒng)為 4 個(gè)面中每一面的外層保留 18 dp,以創(chuàng)建有趣的視覺效果(例如視差或脈動)显拜。

注意:設(shè)備的原始設(shè)備制造商 (OEM) 可以指定一個(gè)蒙版衡奥,該蒙版可能包含沿形狀特定點(diǎn)的半徑(最短為 33 dp)。

以上是我截取的翻譯远荠,這里給大家詳細(xì)解釋一下矮固,并且結(jié)合我的經(jīng)驗(yàn)給大家說注意事項(xiàng)。

1譬淳,UI小姐姐一定要使用AI給大家做svg圖標(biāo)档址,千萬別用PS盹兢,PS出的svg不能被轉(zhuǎn)換為vector。

2辰晕,就是UI出圖需要給你一個(gè)背景SVG和一個(gè)標(biāo)志SVG蛤迎,由于是矢量圖,所以下面為了讓UI們能理解含友,全部按照1倍圖說替裆,也就是1dp == 1px。

svg的邊框大小必須為108px窘问,而圖標(biāo)的實(shí)際顯示區(qū)域?yàn)?2px辆童,也就是說自適應(yīng)圖標(biāo)周圍要預(yù)留33px的空間用來兼容Android系統(tǒng)動效

具體示意如圖

image
  • 圖中灰色部分為預(yù)留空間。
  • 深粉色范圍為圖標(biāo)實(shí)際顯示范圍惠赫,并不是背景范圍把鉴,背景范圍需要延伸到108px。
  • 淺粉色范圍為標(biāo)志SVG中圖標(biāo)的安全范圍儿咱,防止被系統(tǒng)裁切

簡單來說就是UI小姐姐需要提供2個(gè)大小為108px的svg文件庭砍,并且按照上圖的要求制作對應(yīng)的圖層

★注意,UI小姐姐制作圖標(biāo)混埠,一定不要使用蒙版怠缸,因?yàn)関ector不支持svg的蒙版,vector只支持最基礎(chǔ)的路徑

image

實(shí)際效果就是UI小姐姐提供最左邊那種樣式的圖標(biāo)钳宪,我們寫進(jìn)項(xiàng)目以后揭北,通過不同的系統(tǒng)的不同的蒙版,最終切出我們要的圖標(biāo)吏颖。

如果我是個(gè)人開發(fā)者怎么辦搔体?

上文說的是一個(gè)正常公司,有UI工程師與你配合才能完成Android Q適配半醉,但是實(shí)際上疚俱,你可能只是個(gè)人開發(fā)者,并不會UI的制作缩多,不可能自己制作矢量圖標(biāo)计螺。更甚者,你們公司的UI工程師可能知識不足瞧壮,AI的使用不熟練登馒,造成無法與你配合。這就比較無解了咆槽,只能給UI小姐姐送一本AI從入門到精通了陈轿。

如果發(fā)生這種事,真的沒辦法適配Android Q了么,不麦射,有辦法蛾娶,Google給我們留了一個(gè)備用的PNG適配的方法。我們馬上來提到如何操作潜秋。

但是這里我想夾雜一點(diǎn)我個(gè)人的觀點(diǎn)蛔琅,這個(gè)方法在Google官網(wǎng)壓根就沒有被提及,僅僅是AndroidStudio為了開發(fā)人員做的一個(gè)備用方案峻呛,為了兼容Android各種尺寸分辨率的屏幕罗售,Google從Android 5.0開始引入vector矢量圖,這已經(jīng)過去5年了钩述,Google是肯定不推薦你是用PNG這種方式來兼容Android Q寨躁,所以根本就不會在官網(wǎng)提及如何操作。所以如果作為程序員你有條件進(jìn)行自適應(yīng)矢量圖標(biāo)適配牙勘,請一定要堅(jiān)持用矢量圖標(biāo)职恳,大家一起推動國內(nèi)乃至世界的開發(fā)標(biāo)準(zhǔn)發(fā)展。國內(nèi)太多人不按Google的要求寫程序了方面,這回Android Q一定有他們受的放钦!


那么開始,目前我們做適配一般就做到xxxhdpi恭金,也就是2k的屏幕操禀,所以我們需要準(zhǔn)備上文提到的矢量圖標(biāo)的一個(gè)至少512px的PNG圖片,因?yàn)?32px就是2k屏幕要用到的圖標(biāo)大小蔚叨,512px是Google商店需要用到的最小尺寸。如果使用的圖片小于512px會造成高分辨率設(shè)備圖標(biāo)變虛辙培。

image

在任意圖標(biāo)文件夾右鍵蔑水,按照圖中路徑,點(diǎn)擊Image Asset

image

你會看到默認(rèn)就是Launcher Icons(Adaptive and legacy)

這個(gè)就是導(dǎo)入PNG文件來適配的扬蕊,這里分

Foreground Layer:標(biāo)志層

Background Layer:背景層

Legacy:舊版圖標(biāo)

將準(zhǔn)備好的512px的標(biāo)志層搀别,跟背景層選到對應(yīng)的層中,legacy會自定給你生成老版本各分辨率需要的圖片大小

image

這樣就生成了一大堆png文件尾抑,這樣PNG來適配Android Q就完成了歇父。

你的圖標(biāo)也可以動起來了

已知問題:無論你使用矢量圖標(biāo),還是PNG圖標(biāo)適配再愈,在Flyme7上均無法正確顯示榜苫,這是Flyme自己的問題,這個(gè)系統(tǒng)不遵照Google在Android 8.0發(fā)布的圖標(biāo)開發(fā)規(guī)范翎冲,除非他們自己改正垂睬,否則無解

image

后記

其實(shí)最開始是不準(zhǔn)備寫第二種PNG適配的方法的,因?yàn)楦杏X肯定有很多人為了湊合而使用第二種方法,不過作為程序員驹饺,你把一個(gè)5kb的vector就解決的適配钳枕,變成了每個(gè)分辨率文件夾里都有一個(gè)png文件,這至少是vector的5倍大赏壹。所以我們最好還是采取第一種矢量圖標(biāo)的方式來適配鱼炒,這樣才是正路,也避免以后設(shè)備參數(shù)的改變造成不必要的影響蝌借。

本文寫到這里也就結(jié)束了昔瞧,隨后我會更新更多關(guān)于Android Q的新特性和適配方法,敬請期待9峭S脖!

如果看不懂或者我寫的有問題的地方擎鸠,歡迎在評論中指出缀磕,大家一切探究討論!

svg的演示文件百度網(wǎng)盤劣光,請不要違法使用袜蚕,不要給雙方找麻煩,實(shí)際項(xiàng)目的圖標(biāo)绢涡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牲剃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子雄可,更是在濱河造成了極大的恐慌凿傅,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件数苫,死亡現(xiàn)場離奇詭異聪舒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)虐急,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門箱残,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人止吁,你說我怎么就攤上這事被辑。” “怎么了敬惦?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵盼理,是天一觀的道長。 經(jīng)常有香客問我俄删,道長榜揖,這世上最難降的妖魔是什么勾哩? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮举哟,結(jié)果婚禮上思劳,老公的妹妹穿的比我還像新娘。我一直安慰自己妨猩,他們只是感情好潜叛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著壶硅,像睡著了一般威兜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上庐椒,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天椒舵,我揣著相機(jī)與錄音,去河邊找鬼约谈。 笑死笔宿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的棱诱。 我是一名探鬼主播泼橘,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼迈勋!你這毒婦竟也來了炬灭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤靡菇,失蹤者是張志新(化名)和其女友劉穎重归,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厦凤,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鼻吮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泳唠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狈网。...
    茶點(diǎn)故事閱讀 39,773評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宙搬,死狀恐怖笨腥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情勇垛,我是刑警寧澤脖母,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站闲孤,受9級特大地震影響谆级,放射性物質(zhì)發(fā)生泄漏烤礁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一肥照、第九天 我趴在偏房一處隱蔽的房頂上張望脚仔。 院中可真熱鬧,春花似錦舆绎、人聲如沸鲤脏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽猎醇。三九已至,卻和暖如春努溃,著一層夾襖步出監(jiān)牢的瞬間硫嘶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工梧税, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沦疾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓贡蓖,卻偏偏與公主長得像曹鸠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子斥铺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 前言 不管是開發(fā) Android 已久的老司機(jī)晾蜘,還是剛剛上車的新司機(jī)邻眷,都肯定會對一件事情深惡痛絕:圖片適配(尤其是...
    lypeer閱讀 3,227評論 3 48
  • Android Vector曲折的兼容之路 兩年前寫書的時(shí)候,就在研究Android L提出的Vector剔交,可研究...
    eclipse_xu閱讀 34,982評論 30 263
  • 今天我在看某腦SVG視頻和網(wǎng)上查資料時(shí)肆饶,發(fā)現(xiàn)了和某位大佬的寫文章的某種巧合(報(bào)以微妙的笑容)。因?yàn)閺?qiáng)迫癥岖常,所以我想...
    仁昌居士閱讀 4,666評論 0 11
  • 有沒有一首歌聽了就讓你一直想起傷心的事驯镊?在痛哭之后才發(fā)現(xiàn)這首歌也很適合陪你入睡。原來眼淚和夜晚最配
    Suki_the_guy閱讀 372評論 0 0
  • 開篇 作為程序開發(fā),真的需要算法么偎快,這個(gè)問題確實(shí)一直來被討論冯乘,知乎,論壇晒夹,各個(gè)地方都交織著對他的討論裆馒,那么作為一個(gè)...
    夜3033閱讀 1,423評論 10 24