我曾手动或使用Web工具将SVG转换为VectorDrawable
,但我现在遇到了麻烦。我有一个VectorDrawable
,但不确定如何将其转换为SVG,并且找不到任何在线工具来完成这项工作。
是否有人有此经验,可以分享一下具体步骤或工具?
我曾手动或使用Web工具将SVG转换为VectorDrawable
,但我现在遇到了麻烦。我有一个VectorDrawable
,但不确定如何将其转换为SVG,并且找不到任何在线工具来完成这项工作。
是否有人有此经验,可以分享一下具体步骤或工具?
我遵循的步骤:
android:pathData
替换为 d
android:fillColor
替换为 fill
android:strokeColor
替换为 stroke
android:strokeWidth
替换为 stroke-width
android:fillType
替换为 fill-rule
在VectorDrawable中,没有 fillColor
的路径在SVG中为 fill="none"
。
android:viewportHeight="24" android:viewportWidth="24"
在SVG中为 viewBox="0 0 24 24"
。
示例
矢量图
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportHeight="24"
android:viewportWidth="24">
<path
android:fillColor="#ffffff"
android:pathData="M12,3L2,12h3v8h2.5v-0.8c0-1.5,3-2.2,4.5-2.2s4.5,0.8,4.5,2.2V20H19v-8h3L12,3zM12,15.2c1.2,0-2.2-1-2.2-2.2 s1-2.2,2.2-2.2s2.2,1,2.2,2.2S13.2,15.2,12,15.2z" />
<path android:pathData="M0,0h24v24H0V0z" />
</vector>
可缩放矢量图形(SVG)
<svg xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24" >
<path
fill="#ffffff"
d="M12,3L2,12h3v8h2.5v-0.8c0-1.5,3-2.2,4.5-2.2s4.5,0.8,4.5,2.2V20H19v8h3L12,3zM12,15.2c1.2,0-2.2-1-2.2-2.2 s1-2.2,2.2-2.2s2.2,1,2.2,2.2S13.2,15.2,12,15.2z" />
<path d="M0,0h24v24H0V0z" fill="none"/>
</svg>
VectorDrawable格式与SVG非常相似。
您可以在此处找到关于VectorDrawable格式的文档,以及在此处找到关于SVG格式的文档。
我刚写了这个Python脚本,它可以将矢量可绘制的XML文件转换为SVG。它并不涵盖所有矢量可绘制属性,但可以处理最常见的一些属性。您只需将XML文件拖放到脚本上,文件就会被转换。
pip install xml
。 - Hyperion
android:fillAlpha
是fill-opacity
。来源:https://dev59.com/jW025IYBdhLWcg3wX070#6042577 - Tamás Sengel