原文首发于微信公众号:jzman-blog,欢迎关注交流!php
Android 8.0 引入了自适应应用启动图标,可在不一样的设备中显示不一样的图标,如自适应图标能够在一台设备上显示为圆形,在另外一台设备上显示为方形,每一个 OEM 厂商都会提供一个 mask,系统会自动将自适应图标渲染成相同的形状,自适应图标也可使用到设置、分享等想保持统一图标风格的位置。android
可经过定义背景和前景的两个图层来控制自适应图标的外观,必须提供一个没有背景、没有阴影的图片做为图标的形状。微信
Android 7.1 (API级别25) 以前的启动图标在标准屏幕密度下是 48 * 48 dp,如今必须按照以下标准定义自适应图标的图层:工具
**注意:**OEM 厂商指定的遮罩半径最短 33dp学习
建立自适应图标可使用 Android Studio 提供的 Image Asset Studio 工具,使用该工具能够建立各类不一样类型的图标,该工具会为每一个通用屏幕密度生成一组具备相应分辨率的图标,固然使用 Image Asset Studio 还能够生成其余须要适配的一系列图标,下面是 Image Asset Studio 的操做界面,以下图所示:spa
选择前景和背景以后,Image Asset Studio 会自动生成相应分辨率的图标文件,参考以下:3d
上述目录中,目录 mipmap-anydpi-v26 就是为 Android 8.0 以上建立的启动器图标,当 Target Sdk Version 为 API 26 之上的时候,系统会自动选择该目录下的图标文件做为应用图标文件,其图标文件内容以下:code
<!--ic_launchr.xml-->
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
</adaptive-icon>
复制代码
上述文件中背景选择的是颜色,前景是选择的是一张图片,最终生成的自适应图标文件效果对好比下:cdn
背景 | 前景 | 叠加效果 |
---|---|---|
#4E4C9E |
![]() |
![]() |
固然,若是是 Android 8.0 之前的版本,则会使用对应分辨率下的图标文件,这样就很方便的完成了图标文件的适配。能够选择关注我的微信公众号:jzman-blog 获取最新更新,一块儿交流学习!xml