前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 8.0 之自适应图标

Android 8.0 之自适应图标

作者头像
蜻蜓队长
发布2018-08-03 15:13:19
1.5K0
发布2018-08-03 15:13:19
举报
文章被收录于专栏:Android机动车

关于异形图标和规则图标的取舍,在不同阵营的 Android 用户之间一直存在着争议。而一向提倡使用异形图标、讲求图标「个性」的 Google 在 Android 7.1 中引入了圆形图标规范,在 Android 8.0 中还将带来全新的自适应图标特性——Google 似乎想通过应用图标规范来触及 Android 平台的碎片化问题。

Android 8.0 (API 26)引入了自适应图标,可以在不同的设备上显示不同形状的图标。例如,一个app 如果采用了自适应图标,那么它就可以在一家的 OEM 厂商的手机上显示为圆形,在另一家 OEM 厂商的手机上显示为方形。只需要每个 OEM 厂商提供一个标准的图标遮罩,那么系统就可以将所有的自适应图标渲染为相同的形状。自适应图标同样可用于shortcuts (快捷方式)、设置、分享对话框、屏幕预览等地方。

自适应图标原理

在自适应图标中,将原来的一个图标分成了三个图层:

  • foreground:需要显示的主 icon
  • background:底层背景图案
  • Mask:遮罩,由手机设备厂商提供

通过这三个图层决定了自适应图标的外观和形状

需要注意的是,提供的图层是没有形状、阴影的 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 原本的设计。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Android机动车 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档