起源

1、ui图

image.png

1、我们把这套UI放在了mipmap的不同文件夹下。 2、manifest文件的application节点下设置app的icon为该图片

**

2、运行结果

(1)google的 pixel2 手机模拟器上(android 8.0)
image.png
(2)vivo z1 (android 9.0)
image.png
(3)红米 note6(android 8.0)
image.png

发现问题: 1、google的pixel2 上图标适配有问题 2、安卓9.0上图标显示有问题

解决

1、显示默认安卓图标的解决方案

先看看安卓的mipmap目录:
image.png

其他的目录我们都知道了,但是这个v26 是啥呢?其实Android 8.0或以上系统的手机,都会使用这个目录下的ic_launcher来作为图标。(知道为啥我们9.0手机为啥显示默认图片了吧,即使你指定设置了app的图标)

(1)解决方式1

直接删除v26文件夹(简单粗暴)

(2)解决方式2

适配一套v26的xxx.xml资源(参考下文图标适配方案)

2、图标适配

安卓8.0以后google规定了app图标组成
前景foreground(我们自己提供,下参考图中的白色安卓机器人头像)
背景background(我们自己提供,下参考图中的蓝色网格背景)
mask(手机厂商提供,下参考图中的透明覆盖物即为面具,不同厂商面具可能不同,有圆的,方的等等)
图解参考
所以我们只需要提供前景背景即可
(1)开始适配-使用studio的image Assets工具

ctrl shift +a 打开工具(window)

image.png
(2)取来一张图片设置前景
image.png

1,2为文件命名。 3、为我们桌面上的一张图片。

(3)设置背景
image.png

背景我随便设置了白色

(4)点击finish
image.png
(5)生成结果
image.png

这时我们设置为生成的my_icon就行了

结果:
image.png

ps:问题1使用我们的图标适配方案也能解决,因为图标适配在v26中也会生成对应的xml

end

详细适配参考:https://blog.csdn.net/guolin_blog/article/details/79417483#commentsedit
多亏了郭神的分享,我在这里也简单的动手写下 。。。。。。。加深记忆。