Android Studio无法导入SVG矢量图的所有部分

3
我希望为我的Android Studio应用程序的设计导入一些来自Illustrator的矢量图形。如果将我的矢量图形导出为SVG,则效果非常好。我的项目的所有部分都成功导出,结果令人满意(图1)。然而,当我在Android Studio中将此SVG文件创建为新的矢量资源时,我的一个蓝色圆圈突然消失了(见图2)。Android Studio为什么无法导入我的SVG的所有部分?或者原因可能是Illustrator导出错误吗?

编辑:添加图片3以显示使用在线转换器会发生什么情况。输出甚至更糟。

任何帮助都将不胜感激!

图片1:

Picture 1 Exported SVG opend in Microsoft Edge, works as it should

图片 2:

Picture 2 Previes in Android Studio (one circle is missing)

图像 3...当我使用在线转换器获取 XML 向量时的结果(也是错误的)*

Result when I use a online converter to get a xml vector

2个回答

1
在转换器窗口中显示的SVG版本是由Android Studio内置的SVG渲染器渲染的。这是SVG的预览,它不一定反映转换器的输出。
所以你看到的错误是内置SVG渲染器的问题。
矢量图并不真正支持渐变填充。至少转换器不支持它们。因此,即使显示的SVG完美无缺,生成的VectorDrawable也不会包括渐变圆。
因此,你有几种替代方法:
1. 将你的圆改成实心填充,然后转换为VectorDrawable。 2. 像#1一样,使用预定义的渐变定义添加渐变。 3. 在你的应用程序中使用一个真正的SVG渲染库(如AndroidSVG)。 4. 切换到使用位图背景(即PNG) 5. 使用Canvas方法自己绘制背景。
就我个人而言,我会选择第三种方法。

0

Android Studio不能将复杂的图形转换为矢量图。它只能转换平面图标。你必须在这里使用PNG图片啊!


2
感谢您的回答,欢迎来到stackoverflow!这也是我已经考虑过的事情...问题在于我不明白为什么一个圆可以工作而另一个圆却不能,因为它们的相对对称外观。如果您有任何更多的想法,请告诉我。谢谢。 - AnonRocketman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接