5. 更改应用图标

返回到 Android Studio,使用刚刚下载的新资源。

首先,删除带有 Android 图标和绿色网格背景的旧版可绘制资源。在“Project”视图中,右键点击相应文件,然后选择 Delete。

请删除以下内容:

drawable/ic_launcher_background.xml

drawable/ic_launcher_foreground.xml

请删除以下内容:

mipmap-anydpi-v26/

mipmap-hdpi/

mipmap-mdpi/

mipmap-xhdpi/

mipmap-xxhdpi/

mipmap-xxxhdpi/

您可以取消选中 Safe delete (with usage search) 框,然后点击 OK。Safe delete (with usage search) 功能会通过搜索代码来找出要删除的资源的使用情况。在这种情况下,您需要将这些文件夹替换为名称相同的新文件夹,这样就无需担心安全删除了。

创建一个新的 Image Asset。您可以右键点击 res 目录,然后依次选择 New > Image Asset;也可以先点击 Resource Manager 标签页,再点击 + 图标,然后从下拉菜单中选择 Image Asset。

系统将打开 Android Studio 的 Image Asset Studio 工具。

保留默认设置:

Icon Type: Launcher Icons (Adaptive and Legacy)

Name: ic_launcher

选中 Foreground Layer 标签页后,前往 Source Asset 子部分。在 Path 字段中,点击文件夹图标。

此时系统会弹出浏览计算机并选择文件的提示。找到您刚下载的新 ic_launcher_foreground.xml 文件的位置。它可能位于计算机的下载文件夹中。找到该文件后,点击 Open。

Path 现已更新为新前景矢量可绘制对象的位置。将 Layer Name 保留为 ic_launcher_foreground,Asset Type 保留为 Image。

接下来,切换到界面的 Background Layer 标签页。保留默认值。

点击 Path 字段中的文件夹图标。

找到您刚下载的 ic_launcher_background.xml 文件的位置。点击 Open。

在您选择新资源文件时,预览应该会相应地进行更新。以下便是使用新的前景图层和背景图层后的图标预览效果。

用两个图层呈现应用图标后,设备制造商(即原始设备制造商,或简称为“OEM”)便可以根据具体的 Android 设备创建不同的形状,如上面的预览所示。OEM 会提供一个将应用到设备上所有应用图标的蒙版。

如果向应用图标的两个图层应用圆形蒙版,将生成一个带有蓝色网格背景且其中显示 Android 图片的圆形图标(如上图左侧图片所示)。或者,可以应用圆角方形蒙版,以生成如上图右侧图片所示的应用图标。

同时具有前景图层和背景图层,便可实现有趣的视觉效果,因为这两个图层可以彼此独立移动并缩放。不妨查看博文“设计自适应图标”中“设计注意事项”下的内容,了解一些有关视觉效果的有趣示例。由于您不知道用户将会使用什么设备,或者 OEM 将会为您的图标应用哪种蒙版,您需要设置自己的自适应图标,以免重要信息被裁剪掉。

如果重要的内容会被裁减掉,或者显示的太小,您可以使用每个图层的 Scaling 部分下的 Resize 滑动条,确保每个元素都显示在安全区域中。为了确保所有内容均不会被裁剪,请拖动 Foreground Layer 和 Background Layer 标签页中的 Resize 滑块,将前景图片和背景图片的大小调整至 99%。

点击下一步。

此步骤为 Confirm Icon Path。您可以点击各个文件,查看预览效果。

点击完成。

确认 mipmap 文件夹中所有生成的资源均正确显示。示例:

太棒了!现在,您将需要再进行一项更改。

测试应用

测试是否显示新的应用图标。在设备(模拟器或实体设备)上运行应用。

点击设备上的主屏幕按钮。

向上滑动以显示所有应用列表。

查找您刚刚更新的应用。您应该会看到系统显示新的应用图标。

注意:根据设备型号,您可能会看到不同形状的启动器图标。无论如何,系统都应在背景图层上显示前景图层,并应用某类蒙版。

非常棒!新的应用图标看起来非常棒。

自适应和旧版启动器图标

现在,您的自适应图标可以正常运行了,您可能会好奇,为何不能删除所有的应用图标位图图片。您仍需要这些文件,以便应用图标能够在旧版 Android 上呈现出较高的质量,这被称为向后兼容性。

在搭载 Android 8.0 或更高版本(API 26 及更高版本)的设备上,系统可以使用自适应图标(由前景矢量可绘制对象、背景矢量可绘制对象以及在其上应用的 OEM 蒙版组合而成)。以下是您项目中的相关文件:

res/drawable/ic_launcher_background.xml

res/drawable/ic_launcher_foreground.xml

res/mipmap-anydpi-v26/ic_launcher.xml

res/mipmap-anydpi-v26/ic_launcher_round.xml

在搭载 Android 8.0 以下的任意版本(但高于您的应用所需的最低 API 级别)的设备上,系统将使用旧版启动器图标(位于不同密度级别的 mipmap 文件夹中的位图图片)。以下是您项目中的相关文件:

res/mipmap-mdpi/ic_launcher.webp

res/mipmap-mdpi/ic_launcher_round.webp

res/mipmap-hdpi/ic_launcher.webp

res/mipmap-hdpi/ic_launcher_round.webp

res/mipmap-xhdpi/ic_launcher.png

res/mipmap-xhdpi/ic_launcher_round.webp

res/mipmap-xxhdpi/ic_launcher.webp

res/mipmap-xxhdpi/ic_launcher_round.webp

res/mipmap-xxxhdpi/ic_launcher.webp

res/mipmap-xxxhdpi/ic_launcher_round.webp

实际上,在不支持自适应图标的旧版设备上,Android 将回退为使用位图图片。

恭喜!您已完成更改应用图标的所有步骤!