【问题标题】:Android Studio does not import all parts of an SVG VectorAndroid Studio 不会导入 SVG 矢量的所有部分
【发布时间】:2020-04-23 21:17:27
【问题描述】:

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

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

任何帮助表示赞赏!

图一:

图二:

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

【问题讨论】:

    标签: android android-studio android-layout svg android-vectordrawable


    【解决方案1】:

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

    所以您看到的错误在于内置 SVG 渲染器。

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

    所以你有几种替代方法:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的回答并欢迎使用 stackoverflow!这也是我已经强调过的事情……我不明白为什么它适用于一个圆圈而不适用于另一个圆圈,因为它们的外观相对对称。如果您对此有任何其他想法,请告诉我。谢谢
      猜你喜欢
      • 2016-02-13
      • 1970-01-01
      • 2017-01-29
      • 2016-01-12
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 2017-08-04
      相关资源
      最近更新 更多