我正在尝试使用两个VectorDrawables作为背景和前景来为应用创建自适应图标。但是,从Illustrator中制作的svg创建的前景矢量无法调整大小或正确放置在图标中。
前景矢量以供将来参考
我根据自适应图标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>
但是,当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>
我是刚接触android的人,所以我不确定还有其他因素可能导致此问题。有一个another similar question,但是抵消影响的原因尚未解决。
答案 0 :(得分:0)
想要最小化我的应用程序大小,我尝试对通知和图标使用相同的向量并遇到完全相同的问题。
我尝试了“向导”:
然后,我可以将矢量缩放到背景矢量的上方,但居中。
查看生成的矢量文件图标,它将我的矢量路径嵌套在具有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中尝试。
这可能对您有用-就我而言,我不能将新图标前景矢量用作通知,因为它太小了。因此,我似乎需要不同尺寸的可缩放矢量图形的副本!
如果能够在自适应图标文件本身中缩放自适应图标的前景/背景部分,那将是理想的-也许有人已经知道该怎么做?