1. 程式人生 > >Android 8.0適配之應用圖示適配

Android 8.0適配之應用圖示適配

前言:Android 8.0系統出來這麼久了,也是時候來適配一下了。8.0 系統修改的地方挺多的,但是需要我們程式猿開發適配的倒不是很多。這篇部落格主要介紹8.0系統適配中的應用圖示適配。

在Android 7.1系統之前APP的應用圖示都是mipmap中的靜態圖片android:icon="@mipmap/logo",7.1之後谷歌開始推廣圓形圖示,又添加了android:roundIcon="@mipmap/logo"屬性來讓你的APP支援圓形圖示。到了8.0,又發生了變化,我們來新建立一個專案看看發生了什麼。

 多了一個資料夾mipmap-anydpi-v26。點開看一下

 裡面也是啟動圖,但是不是一張圖片,而是xml檔案,開啟這個xml檔案

 設定了background,foreground,繼續點下去

 

 原來是兩張SVG圖,別慌,這個程式碼不用我們自己寫的,下面會說到是可以用Android Studio生成的。

其實上面的檔案是為適配8.0系統中應用圖示專門生成的。有些小夥伴可能會疑惑了,為什麼我的沒有尼。將你的as升級到3.0以上,並且把targetSdkVersion 設定26以上就會自動生成了,如果你的targetSdkVersion 設定的是26一下的是不會有問題的,Android系統會認為你還沒有做好對8.0的適配工作,是可以向下相容的。

Android 8.0或以上系統的手機都會使用這個目錄下的圖片檔案。

8.0系統應用圖示的解釋

從Android 8.0開始將應用圖示分成兩層:前景層和背景層,也就是我們前面看到的對應background,foreground指定的SVG圖。那麼我們在設計圖示的時候就需要單獨設計前景和背景,前景用來展示應用圖示的logo,背景用來襯托應用圖示的logo。需要注意的是。背景層在設計的時候只允許定義顏色和紋理,但是不能定義形狀。Google將定義形狀的事情交給了手機廠商來做了。這也是為什麼我們看到的有些手機的應用圖示是圓形的,有些是圓角的。手機廠商的做法也很簡單,只需要在我們設計的圖示上再蓋上一層mask。

開始適配

將剛剛建立的專案跑起來,為了對比方便我開了兩個模擬器,一個是7.0的系統一個是8.0的系統,利用現有的資源將應用圖示也換了一下,原圖如下:

 

 背景是透明色,如果不加灰色陰影恐怕看不見啊,哎,資源有限啊,但是不影響顯示效果。分別看一下同樣的圖示顯示在不同的系統上,我的targetSdkVersion 設定的是26,但是未做適配。

 

 第一張是7.0的,第二張是8.0的。額,8.0的完全看不見了啊。這是因為系統自動在應用圖示的外層套了一個白色的圓圈。

好吧,下面就開始我們的適配過程。

開啟專案,使用快捷鍵Ctrl+Shift+A(windows系統),command+shft+A或者右擊專案new->選擇Image Asset

 

 開啟編輯器,在這裡就可以進行圖示適配了。

 好了,現在就可以製作我們的圖示了。先對編輯器說明一下,左邊是操作區域,右邊是預覽區域。

操作區域:

Icon Type:保持預設就可以了,表示同是建立相容8.0系統以及老版本系統的應用圖示;

Name:應用圖示的名稱,隨自己而定;

下面是三個頁籤,第一個是編輯前景層,第二個是編輯背景層,第三個編輯老版本的系統圖標

Layer Name:對應各層的命名;

Asset Type:資源型別,前景層有三種類型可選,背景層有兩種型別可選:Color,Image.說明背景層可以是圖片也可以是單獨的顏色;

Path:資源路徑;

Trim:保持預設就好;

Resize:設定資原始檔的大小。設定資原始檔大小的時候要注意觀察預覽區域,預覽區域裡有各種形狀型別,每種型別有一個圓實線,圓實線區域以內表示安全區域,我們的圖示大小要在安全區域內。

 點選Next製作完成,開啟mipmap資料夾

 重新在兩個模擬器上執行APP

 

 ok,這樣就完成了適配工作。