Android 8.0之自适应图标

android studio 教程 | 2018-10-11 12:21

本来打算接着上篇继续属性动画的总结,由于比较忙,这部分内容会在后面补充分享。

Android 8.0 引入了自适应应用启动图标,可在不同的设备中显示不同的图标,如自适应图标可以在一台设备上显示为圆形,在另一台设备上显示为方形,每个 OEM 厂商都会提供一个 mask,系统会自动将自适应图标渲染成相同的形状,自适应图标也可以使用到设置、分享等想保持统一图标风格的位置,下面是一张官方的启动图标说明图如下:

可通过定义背景和前景的两个图层来控制自适应图标的外观,必须提供一个没有背景、没有阴影的图片作为图标的形状。

Android 7.1 (API级别25) 之前的启动图标在标准屏幕密度下是 48 * 48 dp,现在必须按照如下标准定义自适应图标的图层:

前景层和背景层的尺寸大小必须是 108 * 108 dp;

mask 可视范围的尺寸大小是 72 * 72 dp;

系统会在图标外层预留 18dp 用以创建有趣的视觉效果,视觉效果因不同设备的启动器而异

注意:OEM 厂商指定的遮罩半径最短 33dp

创建自适应图标可以使用 Android Studio 提供的 Image Asset Studio 工具,使用该工具可以创建各种不同类型的图标,该工具会为每个通用屏幕密度生成一组具有相应分辨率的图标,当然使用 Image Asset Studio 还可以生成其他需要适配的一系列图标,下面是 Image Asset Studio 的操作界面,如下图所示:

imageAsset.png

选择前景和背景之后,Image Asset Studio 会自动生成相应分辨率的图标文件,参考如下:

imageAssetResult.png

上述目录中,目录 mipmap-anydpi-v26 就是为 Android 8.0 以上创建的启动器图标,当 Target Sdk Version 为 API 26 之上的时候,系统会自动选择该目录下的图标文件作为应用图标文件,其图标文件内容如下:

1<!--ic_launchr.xml-->2<?xml version="1.0" encoding="utf-8"?>3<adaptive-icon xmlns:android="">4    <background android:drawable="@color/ic_launcher_background"/>5    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>6</adaptive-icon>

上述文件中背景选择的是颜色,前景是选择的是一张图片,最终生成的自适应图标文件效果对比如下:

当然,如果是 Android 8.0 以前的版本,则会使用对应分辨率下的图标文件,这样就很方便的完成了图标文件的适配。

推荐阅读: