Android O 新特性:自适应图标(Adaptive Icons)

通过这三个图层决定了自适应图标的外观和形状
需要注意的是,提供的图层是没有形状、阴影
的 PNG 格式图象
设计规则
在 Android 7.1 (API 级别 25)及更早的版本中,app 的启动图标大小为 48dp ,在 Android 8.0 中,规则有所改变:
两个图层的大小必须为 108 x 108 dp
图层内部 72 x 72 dp 的区域为可见范围
系统将保留四周各 18 dp 的范围,用来创建有趣的视觉效果,如视差或跳动


动画视觉效果由所支持自适应图标的启动器生存,视觉效果可能因启动器的不同而有差别
OEM 厂商所提供的遮罩是,自中点起至少 33 dp 范围内的区域
在 XML 中创建自适应图标
要给你的应用创建自适应图标,首先你需要你的应用的 AndroidManifest.xml 中为?android:icon?属性并指定一个 Drawable 资源。同时还可以为?android:roundIcon?属性指定一个图标,这个属性不是必须的,只有当你想为你的 app 在任何时候都以一个圆形图标展示时使用。下面的代码将示范这两个属性的用法

接下来需要在资源文件及中创建我们的自适应图标,在 Android 8.0 中自适应图标存在于 res/mipmap-anydpi/?? 文件夹下,使用?<adaptive-icon>?元素为你的图标定义前景和背景图层。<background>?和?<foreground>? 分别为前景图层和背景图层,支持 android:drawable 属性。

使用 Image Asset 创建自适应图标
Android studio 中提供了 Image Asset 工具,可以帮我们快速生成并适配各种分辨率的图标,在 AS 项目中的任意地方,右键 new 选择 Image Asset

如图所示,选择完前景和背景图层后,预览界面会出现不同分辨率及不同形状的自适应图标,点击 next 选择生成的目录,一套自适应图标就生成啦。

由于 Android 系统的开源特性,各个手机厂商定制的 UI 百花齐放,在经历了拟物风到扁平化的转变之后,随着 Android 5.0 推出的 Material Design,各个手机厂商基本都本着在少许的定制化下,在风格上尽量还原 Android 原本的设计。分享有趣的新事物?Android、Kotlin、设计、产品、思考、游戏。

长按关注
评论