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

相关推荐
路上^_^14 小时前
安卓基础组件023-SharedPerferences
android
恋猫de小郭15 小时前
Fluttercon EU 2025 :Let‘s go far with Flutter
android·开发语言·flutter·ios·golang
Andytoms18 小时前
Android geckoview 集成,JS交互,官方demo
android·javascript·交互
2501_9159090621 小时前
iOS 抓包工具有哪些?实战对比、场景分工与开发者排查流程
android·开发语言·ios·小程序·uni-app·php·iphone
锋风1 天前
基于Binder的4种RPC调用
android
行墨1 天前
CoordinatorLayout基本使用与分析—— Group 批量控制
android
行墨1 天前
CoordinatorLayout基本使用与分析——水平偏移(Horizontal Bias)
android
私房菜1 天前
Android dmabuf_dump 命令详解
android·libdmabufinfo·linmeminfo·dmabuf_dump
爱学啊1 天前
1.Android Compose 基础系列:您的第一个 Kotlin 程序
android·kotlin·jetpack
maki0771 天前
虚幻版Pico大空间VR入门教程 01 ——UE5 Android打包环境4.26~5.6
android·ue5·vr·虚幻·pico·大空间