VectorDrawable 在 phone 中的呈现方式与在 Android Studio 中的呈现方式不同

VectorDrawable renders differently in phone than in Android Studio

我有一些程式化的文本,我已将其转换为 SVG 路径以用于 VectorDrawable。我直接从.svg文件中将路径数据提取为文本字符串,用作VectorDrawable中的路径数据。它们在 Android 工作室设计 window 中看起来非常好,但是当我 运行 在我的 phone 上它看起来很乱。我的 phone 是 HTC One M8,是 运行ning stock Marshmallow。我附上了两个屏幕截图,说明它们有何不同。

pathData 在 Android Studio 中渲染:

对比pathData 在 phone 上呈现:

这是 XML 文件中的 path 资源

<path
    android:name="anger_word"
    android:fillColor="#FFFFFF"
    android:pathData="@string/anger_word" />

这里是实际的 pathData,也就是 @string/anger_word http://pastebin.com/7MDLiwQh

这里发生了什么?

谢谢。

现在可能已修复,但 VectorDrawable 渲染代码的某些初始版本在解析路径数据时存在一些错误。 IIRC 特别是相对路径命令。相对路径命令是带有小写字母的命令。相对路径命令似乎是您路径中的大多数命令。

我的建议是尝试将路径转换为仅使用绝对路径命令(大写字母)。这可能不是问题所在,但值得一试。

我不知道你用什么编辑器来创建你的路径,但看看你是否可以用绝对路径命令让它输出路径。

如果不能,那么您可以搜索一个工具来完成。我相信 Inkscape 会做到这一点。请参阅以下问题中的讨论。请注意,它主要是讨论与您需要的相反的转换。

Is there a tool to convert SVG line paths from absolute to relative?

这个问题也可能有帮助。

Convert SVG Path to Absolute Commands