繁体   English   中英

如何在Android中为自适应图标设置VectorDrawable的格式/大小

[英]How to format/size VectorDrawable for adaptive icon in android

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

前景矢量,以供将来参考

前景矢量,以供将来参考

我根据自适应图标准则中的规范将矢量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>

结果

但是,当视口高度和视口宽度设置为较小的值(例如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>

结果

我是刚接触android的人,因此我不确定还有其他因素可能导致此问题。 还有另一个类似的问题,但是抵消作用的原因没有得到解决。

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

我尝试了“向导”:

  • 右键单击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中尝试。


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

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

暂无
暂无

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

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