将VectorDrawable转换为SVG

san*_*one 48 svg android android-vectordrawable

VectorDrawable手动或使用网络工具进行了相反的转换(SVG ).

但我很难做相反的事情.我有,VectorDrawable但我不知道如何将其转换为SVG,我可以找到零在线工具来做到这一点.

有没有人有这方面的经验,有哪些步骤或工具呢?

Kut*_*han 88

我遵循的步骤:

android:pathData 换成了 d

android:fillColor 换成了 fill

在VectorDrawable的路径下fillColorfill="none"在SVG.

android:viewportHeight="24" android:viewportWidth="24"viewBox="0 0 24 24"在SVG.

矢量Drawable

<?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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

  • 颜色“FF000000”不起作用,应更改为“000000” (2认同)
  • 列表中的另一个:android &lt;group&gt; 标签在 SVG 中是 &lt;g&gt;,如果您想处理 android:translateX 或 android:translateY,您需要在其位置使用 transform="translate()" 属性。 (2认同)

Hyp*_*ion 29

VectorDrawable格式非常类似于SVG.

您可以找到的文档VectorDrawable格式在这里,和的文件SVG格式在这里.

我刚刚编写了这个Python脚本,它将矢量可绘制的xml转换为svg.它并未涵盖所有矢量可绘制的属性,但它适用于最常见的属性.您只需将xml文件放到脚本上,文件就会被转换.

  • 仅供参考,@Hyperion,我分叉了您的存储库以添加更好的颜色处理:https://github.com/RohanTalip/VectorDrawable2Svg (4认同)