如何在Android

时间:2019-04-12 19:06:49

标签: android android-vectordrawable adaptive-icon

我正在尝试使用两个VectorDrawables作为背景和前景来为应用创建自适应图标。但是,从Illustrator中制作的svg创建的前景矢量无法调整大小或正确放置在图标中。

前景矢量以供将来参考

Foreground vector for future reference

我根据自适应图标guidelines中的规范将矢量viewportheight和viewportwidth的大小调整为108dp x 108dp,但是,这只会导致前景发生偏移。

<vector android:height="108dp" android:viewportHeight="108"
    android:viewportWidth="108" android:width="108dp"
    xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android">

    ...

</vector>

Outcome

但是,当viewportheight和viewportwidth设置为较小的值(例如50)时,矢量会显示在正确的位置,但太大。

<vector android:height="108dp" android:viewportHeight="50"
    android:viewportWidth="50" android:width="108dp"
    xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android">

    ...

</vector>

Outcome

我是刚接触android的人,所以我不确定还有其他因素可能导致此问题。有一个another similar question,但是抵消影响的原因尚未解决。

1 个答案:

答案 0 :(得分:0)

想要最小化我的应用程序大小,我尝试对通知和图标使用相同的向量并遇到完全相同的问题。

我尝试了“向导”:

  • 右键单击res文件夹,然后单击“新建”>“图像资产”

然后,我可以将矢量缩放到背景矢量的上方,但居中

查看生成的矢量文件图标,它将我的矢量路径嵌套在具有translateX和translateY属性的组标记中,如下所示:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="52.173912"
android:viewportHeight="52.173912">

<group android:translateX="14.086957"
  android:translateY="14.086957">

    <path.../>

  </group>
</vector>

如果要避免生成文件,然后在生成的png文件中删除等,请直接在xml中尝试。


这可能对您有用-就我而言,我不能将新图标前景矢量用作通知,因为它太小了。因此,我似乎需要不同尺寸的可缩放矢量图形的副本!

如果能够在自适应图标文件本身中缩放自适应图标的前景/背景部分,那将是理想的-也许有人已经知道该怎么做?