web-dev-qa-db-fra.com

Convertir VectorDrawable en SVG

J'ai effectué les conversions opposées (SVG en VectorDrawable) manuellement ou à l'aide d'outils Web.

Mais j'ai du mal à faire le contraire. J'ai VectorDrawable mais je ne sais pas comment le convertir en SVG et je ne trouve aucun outil en ligne pour le faire.

Est-ce que quelqu'un a de l'expérience avec cela et quelles sont les étapes ou les outils pour le faire?

46
sandalone

Les étapes que je suis:

Android:pathData remplacé par d

Android:fillColor remplacé par fill

Un chemin dans VectorDrawable sans fillColor est fill="none" en SVG.

Android:viewportHeight="24" Android:viewportWidth="24" est viewBox="0 0 24 24" en SVG.

Exemple

Vecteur 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>
82
Kuti Gbolahan

Le format VectorDrawable est assez similaire à [~ # ~] svg [~ # ~] .

Vous pouvez trouver la documentation du format VectorDrawable ici , et la documentation du [~ # ~] svg [~ # ~] format ici .

Je viens d'écrire this Python qui convertit un vecteur xml dessinable, en un svg. Il ne couvre pas toutes les propriétés dessinables du vecteur, mais il fonctionne avec la plupart Il suffit de déposer vos fichiers XML sur le script et les fichiers seront convertis.

27
Hyperion