Android Studio 不会导入 SVG 矢量的所有部分

Android Studio does not import all parts of an SVG Vector

我想从 Illustrator 导入一些矢量图形来设计我的 android 工作室应用程序。如果我将矢量图形导出为 SVG,效果会很好。我项目的所有部分都已成功导出,结果令人满意(图 1)。但是,当我在 Android Studio 中将此 SVG 文件创建为新的 Vector Asset 时,我的一个蓝色圆圈突然消失了(见图 2)。 Android studio 没有导入我的 SVG 的所有部分的原因可能是什么?或者可能是插图画家导出错误?

编辑:添加了图片 3 以显示如果我改用在线转换器会发生什么。输出更差。

感谢任何帮助!

图片1:

图片二:

图3...使用在线转换器得到xml向量时的结果(同样错误)*

Android Studio 不会将复杂图形转换为矢量绘图。它只转换平面图标。伙计,你必须在这里使用 png !!

转换器 window 中显示的 SVG 版本由 Android Studio 中的内置 SVG 渲染器渲染。 它是 SVG 的预览。它不一定反映转换器的输出。

所以您看到的错误与内置 SVG 渲染器有关。

VectorDrawables 并不真正支持渐变填充。至少转换器不支持它们。因此,即使显示的 SVG 非常完美,生成的 VectorDrawable 也不会包含渐变圆。

所以你有几个替代方法:

  1. 将您的圆圈更改为实心填充,然后转换为 VectorDrawables。
  2. 与 #1 相似,但使用预定义的渐变定义添加渐变。
  3. 在您的应用中使用实际的 SVG 渲染库(例如 AndroidSVG)。
  4. 切换到使用位图背景(即 PNG)
  5. 使用 Canvas 方法自己绘制背景。

就个人而言,我会选择#3。