Android12App启动图标自适应

Android12App启动图标自适应

1.前言:

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

2.出现的问题截图:

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

3.概念:

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

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

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

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

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

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

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

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

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

4.制作自适应图标:

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

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

4.1 选中要适配的图标

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

5.制作图标:

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

6.生成自适应图标:

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

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

  • 调整到你认为合适的比例即可,
  • 直接点击下一步
  • Android Studio会帮你自动生成图标,需要设计和自己去手动改

8.生成的图标如下:

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

9.运行效果如下:

状态栏通知图标:

如果之前有遇到Google gms推送图标显示白色图标的问题也可以参考这个自适应图标进行修改,

手机上的有通知时效果:

10.总结:

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

11.源码地址如下:

gitee.com/jackning_ad...

相关推荐
一笑的小酒馆11 小时前
Android中WebRTC通信
android
KevinWang_13 小时前
Android Hilt 依赖注入
android
古法安卓14 小时前
Android-深入理解 Android 回调(Callback)机制
android·性能优化·android studio
古法安卓14 小时前
Android-车机 GNSS 定位数据接收问题排查
android·java·android studio
FungLeo16 小时前
Flutter 吸顶分组列表实战:语义桶分组 + 点击头平滑滚动
android·flutter
阿巴斯甜17 小时前
Android 自定义权限
android
FungLeo17 小时前
Flutter 超长 StatefulWidget 拆分术:part of + extension on State 实战
android·flutter·dart
小王C语言18 小时前
MySQL 数据类型:数值类型、字符串类型、日期和时间类型、enum 和 set、find_in_set 查询
android·数据库·mysql
我命由我1234519 小时前
Android 控件 - CardView(快速实现圆角)
android·java·java-ee·kotlin·android studio·android-studio·android runtime
码云数智-园园19 小时前
Android 全方位性能优化合集
android·性能优化