Преобразование VectorDrawable в SVG

Я сделал противоположные преобразования (SVG до VectorDrawable) вручную или с помощью веб-инструментов.

Но мне нелегко делать что-то противоположное. У меня есть VectorDrawable, но я не уверен, как преобразовать его в SVG, и я могу найти нулевые онлайн-инструменты для этого.

Есть ли у кого-нибудь опыт в этом и каковы шаги или инструменты для этого?

Ответы

Ответ 1

Шаги следуют:

android:pathData заменен на d

android:fillColor заменен на fill

Путь в VectorDrawable без fillColor равен fill="none" в SVG.

android:viewportHeight="24" android:viewportWidth="24" составляет viewBox="0 0 24 24" в SVG.

Пример

векторный рисунок

<?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>

Ответ 2

Формат VectorDrawable довольно похож на SVG.

Здесь вы можете найти документацию VectorDrawable и документацию SVG здесь.

Я только что написал этот Python script, который преобразует векторный переносимый xml в svg. Он не охватывает все векторные приемлемые свойства, но он работает с наиболее распространенными. Вам нужно только отбросить файлы xml на script, и файлы будут преобразованы.