SVG到Android Shape [关闭]


70

我想知道如何在Android中使用 Shape类的类似于另一种矢量绘图标准。

由于ShapeDrawable,并且Drawables通常定义为XML,所以听起来很像SVG中的矢量绘图命令。

我的问题是:是否有人创建了XSLT转换或其他机制来将SVG绘图描述转换为Android Shapes?


我也在寻找类似的东西,并且很困惑为什么不使用喷气机。正如您提到的,对绘图命令进行简单的转换就足够了(至少对于SVG的子集而言)。我什至有时会手动完成非常简单的形状(用这样的渐变定义按钮背景很棒),而我对SVG的细节或多或少一无所知。
IgorČordaš2014年

4
好问题,打错电话将其关闭。我认为拥有从SVG到Shape的转换器是一个很棒的主意。我可能会写一个,但是我讨厌XSLT,所以我可能会使用C#来做,或者我猜它应该是Java。
Martin Capodici 2014年

2
我建议您使用VectorDrawable。我发现最好的解决方案是BetterVectorDrawable库以及SVG到VectorDrawable Converter。 BetterVectorDrawable是Android 4.0+的VectorDrawable实现,在Android 5.0+上具有可配置的后备行为。 SVG到VectorDrawable转换器是SVG图像到Android VectorDrawable XML资源文件的批处理转换器。在线版本:a-student.github.io/SvgToVectorDrawableConverter.Web
A学生

Answers:



11

好吧,不完全是。但是我确实将libsvg移植到了android,这使您可以加载SVG文件并将其绘制到Canvas上。

请检查:

https://launchpad.net/libsvg-android


网站说您必须使用集市下载,非常简单!
安东·P

5
如果不是GPL!仅对免费软件
有用

@AntonP刚刚尝试使用以inkscape创建的图像(大约300kb)创建lib。那无法渲染:内存不足错误:))

6

我能找到的最接近的东西是svg4mobile

尽管我不相信它会进行Drawables XML的转换,但它确实会读取svg并对Drawable类进行适当的调用。


2

除了上面提到的2个GPL库之外,还有一个名为TinyLine的商业库,该库实现SVG Tiny子集,如果您要创建非GPL应用程序,则限制更大虽然可能是更好的许可选择。



2

出色的AndEngine具有扩展功能,可以加载SVG并将其光栅化为具有任何分辨率的纹理,并具有颜色替换和其他强大功能。确实有效。例如,您可以尝试由引擎作者制作的免费游戏

注意:该引擎最适合全屏2D游戏,并且基于OpenGL 2视图。LGPL


“伟大的AndEngine ...”最好说“伟大的越野车AndEngine ...”
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.