Android12App启动图标自适应

1,793 阅读4分钟

Android12App启动图标自适应

Android启动图标适配解决方案.png

1.前言:

最近在定制系统ROM时发现有些App的图标是圆形的,有些是方形,还有6边型,圆形等等各种形状上面显示异常,但是在第三方自定义的launcher上面会出现白边和显示不全的问题,当然在系统rom修改了图标适配,但是发现有些图标还是有异常,于是从App的层面分析找到了解决方法.

2.出现的问题截图:

从下面的图标可以看出,在系统切换到圆形时发现中间的小图标有的是方形,有的是圆形,还有三角形,有的显示被裁剪了,这肯定很影响美观和体验.

image.png

3.概念:

官网链接:developer.android.google.cn/develop/ui/…

自适应图标(即 AdaptiveIconDrawable)会根据各个设备的功能和用户设置的主题显示不同效果,自适应图标主要用于主屏幕上的启动器,但也可以用于快捷方式、“设置”应用、分享对话框和概览屏幕。自适应图标适用于所有 Android 设备类型。

位图不同,自适应图标可以适应不同的使用情形:

  • 不同形状:自适应图标可在不同型号的设备上显示各种形状。例如,在一台原始设备制造商 (OEM) 设备上,自适应启动器图标可显示为圆形,而在其他设备上则可显示为方圆形(介于方形和圆形之间的形状)。每个设备的原始设备制造商 (OEM) 都必须提供一个蒙版,系统使用该蒙版渲染所有具有相同形状的自适应图标。

article_icon_adaptive.gif

**图 1.** 自适应图标支持各种蒙版,这些蒙版因设备而异。
  • 视觉效果:自适应图标支持多种富有吸引力的视觉效果,当用户在主屏幕上放置或移动图标时,就会看到这些效果。

image.png

图 2. 自适应图标显示的视觉效果示例。

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

4.制作自适应图标:

自适应图标是AndroidO提出的新特性,有适配经验的同学应该都会,制作很简单,这里直接上图和操作步骤。

这里我为了演示效果,就找了一个官网的图标作为例子。

4.1 选中要适配的图标

  • 选中ic_adaptive
  • 选择new
  • 选择Image Asset

image.png

5.制作图标:

  • 制作前景图标
  • 制作背景图标
  • 图标路径为你项目图标的本地路径

image.png

image.png

6.生成自适应图标:

选中图标路径后我们看预览效果

image.png

image.png

7.调整合适的图标比例:

  • 调整到你认为合适的比例即可,这里我选择的是69%,比例需要你根据需要自行调整
  • 直接点击下一步
  • Android Studio会帮你自动生成图标,需要设计和自己去手动改

image.png

8.生成的图标如下:

image.png

在运行之前我们为了达到和官网一样的效果,需要删除drawable目录默认生成的ic_launcer_background和ic_launcher_foreground文件

9.运行效果如下:

image.png

状态栏通知图标:

如果之前有遇到Google fcm推送图标显示白色图标的问题,在三星,Google,oppo手机都有这个问题,也可以参考这个自适应图标进行修改。

image.png

手机上的有通知时效果:

image.png

10.总结:

  • 今天的内容很简单,就是适配各种Android版本的启动图标自适应.
  • 选中图标——新建文件——new矢量图标.
  • 调整合适的比例,具体的需要和设计沟通效果,是否满意
  • 有人会问必须这么做吗?我的回答是的,在第三方系统Launcher最好这样,要不然就会出现各种问题.
  • 有人会说为啥不让ui设计出图,有的人会说为啥我没有遇到这个问题?
  • 因为我是自定义的第三方Launcher,做系统定制的才会有这个问题,因为有些设计他们有的也不知道有这个东西,我之前做过就顺手解决了,项目中ui给图,比例还是需要和设计对一下的,毕竟他们的眼睛是尺子.
  • 普通应用手机系统都帮你处理了,一般不会遇到这个问题.
  • 如果遇到fcm推送图标在三星,Google,oppo等品牌手机上发现通知栏图标显示白色图标也可以使用此方案.

11.源码地址如下:

gitee.com/jackning_ad…