Android Q適配攻略(一)(圖標適配)

Android Q之提前適配攻略(一)(圖標適配)

Android Q之提前適配攻略(二)(後臺定位適配)

Android Q之提前適配攻略(三)(唯一標識符更改)

Android Q之提前適配攻略(四)(後臺Activity啓動限制)

Android Q之提前適配攻略(五)(讀取權限變更)
 

前言:

Android Q在2019年的3月份發佈了beta1版本,這算是近幾年Android版本改動中變化最大的一個版本,本文將分章節一一講解Android Q我們程序員應該做的適配工作,本文章將分系列,本着作者對應新特性進行儘量全面的理解後,將經驗和成果與大家分享。那麼開始吧!

正文:

本文如題,圖標篇,可能有的同學認爲這沒啥好講的,感覺沒有意義,這裏作者通過工作中的開發,表示圖標還是需要一些適配工作的。尤其是從Android 8.0引入了矢量圖標後,如今正式在Android Q強制使用了,所以如果大家不對圖標進行適配的話,在Android Q上會出現顯示問題。

當我們新建一個8.0以上的項目的時候,AndroidStudio會自動給我們多創建2個文件夾mipmap-anydpi-v26和drawable-v24,還有drawable下的ic_launcher_background.xml如圖

當我們點擊進去會發現,裏面全部都是關於verctor的矢量圖標,這時候如果小夥伴們不想做適配工作,直接簡單粗暴的刪除掉這些文件,app在啓動時就會轉向去讀取png的圖標文件,看似一切問題得到了解決。

但是細心的小夥伴肯定留意到了,從Android8.1開始,引入了圖標的視差和脈動,支持圖標動態調整,只有當你適配了矢量圖標後纔會啓動如圖

這個特性在Android Q上被強制啓動了,也就是說Android Q不會去對你的png圖標進行適應顯示,而是會嘗試把你的png圖標按照新特性來顯示,這時候你的app圖標在Android Q上將會顯示小一圈,無法跟其他App的圖標保持一致了,如圖

左邊的刪除了矢量圖app在Android Q上顯示的比其他所有圖標都小一圈,並且不支持動態特效,如果你認爲這確實是個適配問題,那麼請接着往下看吧,第一篇文章不想寫的太複雜,所以圖標篇並不是簡簡單單的給程序員們看的,其實也是UI小姐姐看的,畢竟做圖的是她們,他們不提供素材,一切都是白扯。

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


自適應啓動器圖標,它可以在不同設備型號上顯示爲不同的形狀。

您可以通過定義 2 個圖層(由一個背景圖層和一個前景圖層組成)來控制自適應啓動器圖標的外觀。您必須提供圖標圖層作爲可繪製資源,而不使用圖標輪廓周圍的蒙版或背景陰影。

圖標的設計要求

  • 兩個圖層的尺寸都必須調整爲 108 x 108 dp。
  • 已屏蔽的視口中顯示的圖標的內層爲 72 x 72 dp。
  • 系統爲 4 個面中每一面的外層保留 18 dp,以創建有趣的視覺效果(例如視差或脈動)。

注意:設備的原始設備製造商 (OEM) 可以指定一個蒙版,該蒙版可能包含沿形狀特定點的半徑(最短爲 33 dp)。

 

如果我是個人開發者怎麼辦?

上文說的是一個正常公司,有UI工程師與你配合才能完成Android Q適配,但是實際上,你可能只是個人開發者,並不會UI的製作,不可能自己製作矢量圖標。更甚者,你們公司的UI工程師可能知識不足,AI的使用不熟練,造成無法與你配合。這就比較無解了,只能給UI小姐姐送一本AI從入門到精通了。

如果發生這種事,真的沒辦法適配Android Q了麼,不,有辦法,Google給我們留了一個備用的PNG適配的方法。我們馬上來提到如何操作。

但是這裏我想夾雜一點我個人的觀點,這個方法在Google官網壓根就沒有被提及,僅僅是AndroidStudio爲了開發人員做的一個備用方案,爲了兼容Android各種尺寸分辨率的屏幕,Google從Android 5.0開始引入vector矢量圖,這已經過去5年了,Google是肯定不推薦你是用PNG這種方式來兼容Android Q,所以根本就不會在官網提及如何操作。所以如果作爲程序員你有條件進行自適應矢量圖標適配,請一定要堅持用矢量圖標,大家一起推動國內乃至世界的開發標準發展。國內太多人不按Google的要求寫程序了,這回Android Q一定有他們受的!


那麼開始,目前我們做適配一般就做到xxxhdpi,也就是2k的屏幕,所以我們需要準備上文提到的矢量圖標的一個至少432px的PNG圖片,因爲432px就是2k屏幕要用到的圖標大小,如果使用的圖片小於432px會造成高分辨率設備圖標變虛。

 

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

你的圖標也可以動起來了

已知問題:無論你使用矢量圖標,還是PNG圖標適配,在Flyme7上均無法正確顯示,這是Flyme自己的問題,這個系統不遵照Google在Android 8.0發佈的圖標開發規範,除非他們自己改正,否則無解

 

 

後記

其實最開始是不準備寫第二種PNG適配的方法的,因爲感覺肯定有很多人爲了湊合而使用第二種方法,不過作爲程序員,你把一個5kb的vector就解決的適配,變成了每個分辨率文件夾裏都有一個png文件,這至少是vector的5倍大。所以我們最好還是採取第一種矢量圖標的方式來適配,這樣纔是正路,也避免以後設備參數的改變造成不必要的影響。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章