2010-06-03 125 views
68

我想知道如何在Android中使用Shape類繪製矢量圖可能類似於另一個矢量繪圖標準。SVG到Android形狀

由於ShapeDrawable,Drawable通常定義爲XML,這聽起來很像SVG中的矢量繪圖命令。

我的問題是:有人創建了一個XSLT轉換或其他機制,用於將SVG繪圖描述轉換爲Android Shapes?

+0

我也在尋找像這樣的東西,我很困惑爲什麼這不是實現噴氣。正如你所提到的,繪圖命令的簡單轉換就足夠了(至少對於SVG的一個子集)。我甚至有時爲非常簡單的形狀手動完成這項工作(定義像這樣的漸變的按鈕背景非常棒),而且我對SVG的細節或多或少一無所知。 – PSIXO 2014-02-27 14:07:10

+4

偉大的問題,錯誤的電話關閉它。我認爲從SVG到Shape的轉換器是一個絕妙的想法。我可能會寫一個,但我討厭XSLT,所以我可能會用C#來做,或者我猜它應該是Java。 – 2014-06-10 06:35:13

+1

我會建議你使用VectorDrawable。我找到的最佳解決方案是將VectorVectorDrawable與SVG一起使用到VectorDrawable轉換器。 ** BetterVectorDrawable **是Android 4.0+的VectorDrawable實現,在Android 5.0+上具有可配置的回退行爲。 ** SVG到VectorDrawable轉換器**是SVG圖像到Android VectorDrawable XML資源文件的批量轉換器。在線版本:http://a-student.github。io/SvgToVectorDrawableConverter.Web/ – 2015-09-10 11:42:30

回答

6

,我能找到最接近的是svg4mobile

儘管我不相信它會對Drawables XML進行轉換,但它確實會讀取svg並對Drawable類進行相應的調用。

11

嗯,不完全一樣。但我確實已經將libsvg移植到了android,這使您可以加載SVG文件並將它們繪製到Canvas。

請查看:

https://launchpad.net/libsvg-android

+0

網站上說你必須使用bazaar下載,夠簡單! – 2010-06-23 12:31:32

+5

如果只是它不是GPL!只適用於免費軟件,只是讓你知道 – 2012-01-27 20:38:27

+0

@AntonP只是嘗試了一下你的庫,裏面有一個用inkscape創建的圖像,大約300kb。這不能渲染:內存不足錯誤:)) – 2013-10-06 14:58:58

2

除了上面提到的2個GPL庫之外,還有一個名爲TinyLine的商業庫實現了SVG Tiny子集,儘管如果你想創建一個非GPL的應用程序,它可能是一個更好的許可選擇。

2

偉大AndEngine具有裝載SVG的延伸,它與任何resolut光柵到紋理離子,具有顏色替換和其他偉大的功能。真的有用。例如,您可以嘗試引擎作者a free game

注意:該引擎最適合全屏2D遊戲,並基於OpenGL 2視圖。 LGPL

+0

「偉大的AndEngine ......」更好地說「偉大越野車AndEngine ...「 – 2013-10-07 19:09:03