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...

相关推荐
千里马学框架2 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone2 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone2 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui
JMchen2 天前
属性动画原理与高级动画实现
android·kotlin·canvas
AFinalStone2 天前
Android7 SystemUI 源码解析(二)启动流程深度解析
android·systemui