引言
由於 Google 規定新上線的 App 的 TargetVersion 必須不低於 28 ,而對於 API 級別高於 26(Android 8.0)又要求必須適配新的 Icon 方案,即自適應圖標(Adaptive Icons)。因此,Unity 中的圖標設置欄也發生了一些變化,在 Unity 的 Android 平臺 PlayerSettings
中,Icon 設置由原來的一欄變爲三欄,即 Adaptive (API 26) icons
、Round (API 25) icons
和 Legacy icons
其中 Legacy 更以前版本的 icon 設置對應,而新增的 Round 和 Adaptive 都是 Android 新特性帶來的圖標設置方案。
Unity 內設置
假如先直接在 Unity 中進行設置的話,需要美術人員根據對應的尺寸要求提供一系列圖片,然後再逐一去設置每個選項對應的圖片,顯然極爲繁瑣,而且增加了美術人員和開發人員的工作量。
而藉助 Android Studio 卻可很方便地生成 Icon 設置的配置文件,然後複製到 Unity 工程中的 Plugins/Android/res
目錄下,修改該目錄下的 AndroidManifest.xml
文件即可,下面是詳細的步驟。
Adaptive Icons
自適應圖標,即通過定義兩個圖層(有一個背景圖層和一個前景圖層組成)來控制自適應啓動器圖標的外觀。
關於 Android 圖標演變歷史可以看一下這篇文章 《Android應用圖標微技巧,8.0系統中應用圖標的適配》,寫的很詳細。
Android Studio 生成自適應圖標
在 Android Studio 中,創建一個空的 Android 應用工程,然後通過 Ctrl+Shift+A
快捷鍵換出工具搜索窗口,然後搜索 Image Asset
打開 Image Asset Studio,這是用來製作圖像素材的工具,在 Android Studio 中用它來製作各種圖標。
也可以通過以下兩種方式打開 Image Asset Studio:
在
項目視圖中
選擇res
目錄,右鍵
-New
-Image Asset
File
-New
-Image Asset
這裏美術需要提供兩張圖片,即前景圖和後景圖(假如後景圖是純色則只需提供前景圖,後景圖直接由顏色填充),尺寸按照 Adaptive Icon 的最大尺寸 432X432 提供即可。例如:
然後在打開的 Image Asset Studio 工具中生成對應的文件:
-
設置
Foreground Layer
中的 Path 選擇美術提供的前景圖可以看到前景圖可以有三種格式:Image(自定義圖片)、Clip Art(圖標)、Text(文字),一般都是使用 Image 格式
-
可以修改縮放比以確保前景圖在被裁剪後可以完整顯示
-
以相同的方式設置
Backgroud Layer
,至於Legacy
使用默認設置即可
-
設置完成後,點擊
Next
,會展示導出文件文件的列表,點擊Finish
即可。
導入 Unity 工程
到上面創建的 Android 應用工程資源目錄下,複製 mipmap-
前綴的系列文件夾:
放置到 Unity 工程下的 Plugins/Android/res
目錄下(沒有則手動創建),並將該目錄下的 AndroidManifest.xml
文件中的 application 標籤下的 android:icon
改爲 android:icon="@mipmap/ic_launcher"
。
此後在 Unity 工程打包,無需再到 PlayerSettings
下去設置圖標信息,直接打包即可。
Legacy 空白區域太大
使用 Image Asset Studio 中 Legacy
欄對應自動生成的 ic_launcher.png
四周會有較寬的透明區域:
這會導致應用圖標在手機桌面上顯示時顯得有點小,解決方案就是直接用美術提供的前景後景後再一起的圖片即可,但需要提供 48 、72、96、144、192 五個尺寸,然後到 res 目錄下挨個文件夾中去替換,修改前後對比: