2010-06-03 126 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