繁体   English   中英

自适应图标定位问题

[英]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 的预览。

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 分别用于xxhdpihdpi屏幕的比较

xxhdpi 图标 hdpi 图标

正如我所看到的,结果是不同的。 也许有一种解决问题,也许在资源文件夹命名中。

UPD 4 :我已经检查了可能的解决方案,在评论中提出了建议。

使用bitmap代替drawable引用没有任何区别,因为最终结果已正确构建(正如我在概览窗口中看到的那样),但“桌面”版本的图标仍然显示不正确。

似乎这是一个系统错误:(

只需为您的图标制作一个矢量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM