Launcher 对于非自适应图标,做了额外的处理,肉眼明显可见的有将之缩小并置于一个形状合规的纯色图块当中。
这个处理的代码关键字是 normalizeAndWrapToAdaptiveIcon
,在 Android 11 里,此函数在 BaseIconFactory
类中,而且根据注释,很快此类会被移动到 AndroidX 中去。但是貌似在之前版本的 Launcher 代码里,它是在 com.android.launcher3.graphics.LauncherIcons
类中。这个函数使用到 IconNormalizer
类来干活儿。
另外,对 app 自行请求系统额外创建的快捷方式,会叠加一个 app 自己的小图标作为 badge,这个处理的地方还没有确认。初步看起来,应该是 IconCache
类中的 getShortcutIcon
方法在起作用。
再另外,com.android.launcher3.icons.ColorExtractor
类是一个从位图中找出最显眼的颜色的工具类。