我有自适应的XML图标,由3个绘图构建。
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background>
<layer-list>
<item>
<shape>
<solid android:color="#fff" />
<size android:width="108dp" android:height="108dp" />
</shape>
</item>
<item android:drawable="@drawable/icon_abc"
android:width="54dp"
android:height="27dp"
android:top="27dp"
android:left="27dp" />
</layer-list>
</background>
<foreground>
<layer-list>
<item
android:width="108dp"
android:height="56dp"
android:drawable="@drawable/icon_foreground"
android:top="56dp"
/>
<item
android:width="54dp"
android:height="27dp"
android:drawable="@drawable/icon_pluseq"
android:left="27dp"
android:top="56.5dp"
/>
</layer-list>
</foreground>
</adaptive-icon>下面是Android的预览版。

但是,当我在模拟器(API v27)上安装我的应用程序时,我会看到以下内容:

我在写这篇文章之前读过 的答案。在链接问题中,的图标大小不合适,但我的图标大小为108x108dp,内部前台的大小为72x72dp (如预览中所示)。在这种情况下,我看到那个图标根本没有居中。
UPD:在概述窗口图标中正确显示:

UPD 2:如果我使用经典方法并为背景和前景提供了两个webp mipmap,如下图所示,那么图标将按预期显示。
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@mipmap/icon_xxhdpi_background" />
<foreground android:drawable="@mipmap/icon_xxhdpi_foreground" />
</adaptive-icon>但是,使用这种方法,我无法实现xml可绘制,例如,对于图标的圆形版本,可以缩放mipmap。这意味着我不得不存储2个不同版本的webp图标(4个图像),其总大小为10 KiB,是xml的2 KiB的5倍。
UPD 3:下面是xxhdpi和hdpi屏幕输出的比较


正如我所看到的,结果是不同的。可能存在某种解决问题,可能是在资源文件夹命名中。
UPD 4:我检查了注释中建议的可能解决方案。
使用bitmap而不是drawable引用没有什么区别,因为最终结果是正确构建的(正如我在概述窗口中所看到的),但是图标的“桌面”版本仍然显示得不正确。
似乎这是一个系统错误:(
发布于 2020-05-24 08:13:22
把你的图标做个矢量。
https://stackoverflow.com/questions/61750314
复制相似问题