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
我有一些程式化的文本,我已将其转换为 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