[英]Adaptive icon positioning issue
我有自适应 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 Studio 的预览。
但是当我在模拟器(API v27)上安装我的应用程序时,我看到了这个:
在写这篇文章之前,我已经阅读了这个问题的答案。 在链接的问题中,问题是图标大小不合适,但我的图标大小为 108x108dp,内部前景大小为 72x72dp(如预览所示)。 在这种情况下,我看到该图标根本没有居中。
UPD :在概述中 window 图标正确显示:
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 :下面是 output 分别用于xxhdpi
和hdpi
屏幕的比较
正如我所看到的,结果是不同的。 也许有一种解决问题,也许在资源文件夹命名中。
UPD 4 :我已经检查了可能的解决方案,在评论中提出了建议。
使用bitmap
代替drawable
引用没有任何区别,因为最终结果已正确构建(正如我在概览窗口中看到的那样),但“桌面”版本的图标仍然显示不正确。
似乎这是一个系统错误:(
只需为您的图标制作一个矢量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.