Android 8.0自适应图标

原文首发于微信公众号:jzman-blog,欢迎关注交流!

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

自适应图标支持的 mask 因不同设备而不同

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

自适应图标的前景、背景以及 mask

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

  1. 前景层和背景层的尺寸大小必须是 108 * 108 dp;
  2. mask 可视范围的尺寸大小是 72 * 72 dp;
  3. 系统会在图标外层预留 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 之上的时候,系统会自动选择该目录下的图标文件作为应用图标文件,其图标文件内容如下:

<!--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>

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

背景 前景 叠加效果
#4E4C9E ic_launcher_foreground.png ic_launcher.png

当然,如果是 Android 8.0 以前的版本,则会使用对应分辨率下的图标文件,这样就很方便的完成了图标文件的适配。可以选择关注个人微信公众号:jzman-blog 获取最新更新,一起交流学习!

发布了67 篇原创文章 · 获赞 17 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/jzman/article/details/101392794