移动开发 > 正文

【Interface&navigation】自适应图标(22)

Android 8.0(API级别26)引入了自适应启动器图标,可以在不同的设备模型中显示各种形状。例如,自适应启动器图标可以在一个OEM设备上显示圆形形状,并在另一个设备上显示一个鼠标。每个设备OEM都提供一个掩码,然后系统使用该掩码渲染具有相同形状的所有自适应图标。自适应启动器图标也用于快捷方式,“设置”应用程序,共享对话框和概览屏幕。


图1.自适应图标支持各种设备,这些设备因设备而异。

您可以通过定义包含背景和前景的2个图层来控制自适应启动器图标的外观。您必须提供图标图层作为可绘制的图形,而不使用图标轮廓周围的蒙版或背景阴影。

图2.使用2层和掩码定义自适应图标。

在Android 7.1(API级别25)及更早版本中,启动器图标的大小为48 x 48 dp。您现在必须使用以下准则调整图标图层的大小:

两层的尺寸必须为108 x 108 dp。
图标的内部72 x 72 dp出现在蒙版视口中。
系统在4个侧面的每一侧保留外部18 dp,以创建有趣的视觉效果,例如视差或脉冲。

注意:受支持的启动器会生成动画视觉效果。视觉效果可能因发射器而异。

注意:设备OEM可以指定一个掩模,该掩模可能包含沿着形状的某些点短至33 dp的半径。


图3.自适应图标支持各种视觉效果。

警告:如果未使用必要的图层更新启动器图标,则图标与系统UI显示的其他图标不一致,并且不支持视觉效果。

要了解如何使用Android Studio创建自适应图标,请参阅 使用Image Asset Studio创建应用程序图标

在XML中创建自适应图标

要使用XML向应用添加自适应图标,请首先更新android:icon应用清单中的 属性以指定可绘制资源。您还可以使用该android:roundIcon 属性定义图标可绘制资源。android:roundIcon如果您需要圆形蒙版的不同图标资源,则必须仅使用该属性,例如,徽标的品牌标识依赖于圆形形状。以下代码段说明了这两个属性:

<application
    …
    android:icon="@mipmap/ic_launcher"
    android:roundIcon="@mipmap/ic_launcher_round"
    …>
</application>

接下来,您必须在应用中创建替代的可绘制资源,以便与Android 8.0(API级别26)一起使用res/mipmap-anydpi/ic_launcher.xml。然后,您可以使用该<adaptive-icon>元素为图标定义前景和背景图层drawable。的<foreground>和<background> 内部元件都支持android:drawable属性。

<adaptive-icon>
    <background android:drawable="@color/ic_background"/>
    <foreground android:drawable="@mipmap/ic_foreground"/>
</adaptive-icon>

您还可以将背景和前景drawable定义为元素,方法是将它们包含在元素<foreground>和<background>元素中。

如果要将相同的蒙版和视觉效果应用于常规自适应启动器图标的快捷方式,请使用以下技术之一:

对于静态快捷方式,请使用该<adaptive-icon>元素。
对于动态快捷方式,请在createWithAdaptiveBitmap() 创建方法时调用该 方法。
有关快捷方式的详细信息,请参阅 应用程序快捷方式。

其他资源

关设计和实现自适应图标的其他信息,请阅读Google设计人员和开发人员Nick Butcher撰写的这一系列文章:

了解Android自适应图标
设计自适应图标
实现自适应图标

联系我

QQ:94297366
微信打赏:https://pan.baidu.com/s/1dSBXk3eFZu3mAMkw3xu9KQ

公众号推荐:

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:4051308@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。