我已經手動或使用網絡工具進行了相反的轉換(SVG到VectorDrawable
)。將VectorDrawable轉換爲SVG
但我很難做相反的事情。我有VectorDrawable
,但我不知道如何將其轉換爲SVG,我可以找到零個在線工具來完成它。
有沒有人有這方面的經驗,有什麼步驟或工具來做到這一點?
我已經手動或使用網絡工具進行了相反的轉換(SVG到VectorDrawable
)。將VectorDrawable轉換爲SVG
但我很難做相反的事情。我有VectorDrawable
,但我不知道如何將其轉換爲SVG,我可以找到零個在線工具來完成它。
有沒有人有這方面的經驗,有什麼步驟或工具來做到這一點?
我的步驟如下:
android:pathData
替換爲d
android:fillColor
沒有fillColor
與fill
在VectorDrawable的路徑替換爲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>
這是一個很好的幫助,但是你的SVG缺少我認爲的結束標籤。否則似乎無法驗證,或在Illustrator中打開。 –
的VectorDrawable格式非常類似於SVG。
您可以找到VectorDrawable格式here的文檔和SVG格式的here的文檔。
我剛剛寫了this Python script,它將vector drawable xml轉換爲svg。它不涵蓋所有向量可繪製的屬性,但它適用於最常見的屬性。 您只需將xml文件放到腳本上,文件就會被轉換。
它的Linux?滴什麼都沒有 –
@СергейГрушин我在Windows上試過這個腳本,但它也應該在Linux上工作。你應該檢查控制檯是否有錯誤。也許它沒有安裝的xml模塊?在這種情況下,您應該運行'pip install xml' – Hyperion
腳本只能在命令行中運行。謝謝。但是我想拖放,所以我用'Exec = python/opt/utils/xml2svg創建桌面快捷方式。PY%U'現在我可以將文件拖放他的桌面快捷方式:)另外我編輯的兩兩件事:現在轉換,SVG文件名,不'.xml'預增長後,現在腳本刪除源XML文件。 –
請參閱https://www.w3schools.com/graphics/svg_path.asp,您需要做的就是用從xml向量中抽取的數據替換'path d =「...」' – pskink
@pskink I做了那樣的事情。我認爲有一個更好的自動化方式。無論如何, – sandalone
只需編寫一個小的Python腳本就可以了。 – pskink