Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers. We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations. Closed 4 years ago. The community reviewed whether to reopen this question 3 months ago and left it closed: Original close reason(s) were not resolved Improve this question
I have made the opposite conversions (SVG to VectorDrawable
) manually or using web tools.
But I am having hard time to do the opposite thing. I have VectorDrawable
but I am not sure how to convert it to SVG and I can find zero online tools to do it.
Does anyone have experience with this and what are the steps or tools to do it?
Steps I follow:
android:pathData
replaced with d
android:fillColor
replaced with fill
android:strokeColor
replaced with stroke
android:strokeWidth
replaced with stroke-width
android:fillType
replaced with fill-rule
A path in the VectorDrawable without fillColor
is fill="none"
in SVG.
android:viewportHeight="24" android:viewportWidth="24"
is viewBox="0 0 24 24"
in SVG.
Example
Vector 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>
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>
The VectorDrawable format is pretty similar to SVG.
You can find the documentation of the VectorDrawable format here, and the documentation of the SVG format here.
I just written this Python script which converts a vector drawable xml, to a svg. It doesn't cover all the vector drawable proprieties, but it works with the most common ones. You have only to drop your xml files onto the script, and the files will be converted.
pip install xml
Exec=python /opt/utils/xml2svg.py %U
Now I can drag files and drop him on the desktop shortcut :) Also I edited 2 things: now script delete source xml files after converting, svg file name now without .xml
pre-extension.
Success story sharing