显示SVG文件的Android(Displaying SVG files in Android)

2019-07-30 11:54发布

我想创建一个应用程序,将显示一些平面图位置。 导航是在某种方式通过WiFi实现,我已经做到了,因此现在我有显示楼层平面图的问题。

这可能是一些矢量格式,上网冲浪了一段时间我已经决定,它必须是SVG文件后。 我找到了一些解决方案,但它不是为我工作!

  1. 库SVG-机器人

    有机会显示.SVG文件,而只是“简单”的文件。 它仅适用于教程文件工作正常,但没有任何其他.svg文件(例如,一些其他的文件,你会使用Inkscape制作)。

    所以,我决定,我会分析.svg文件,从中使DOM,在某种程度上得到对象和属性,并通过OpenGL ES绘制。

  2. 阿帕奇蜡染

    乍一看,很好的解决方案,但有一个问题。 Android有一些“本土” Apache库,当我尝试做蜡染的东西,它抛出NoClassDefFoundError ,因为它没有搜索蜡染库,但在“本土”库。

    当然,我们可以在我们的项目中添加的源代码,只需要蜡染解析器.svg文件,并以某种方式对其进行编辑,但有大量的工作,用同样的成功,我们可以写我们自己的解析器。

  3. 微短线

    有没有试用版,但如果我们将看到说明它是如何工作的SVG文件和android,我们会看到,只有这些文件的光栅化,这一切。

有没有什么解决办法不是写自己的解析器更好呢? 有没有人遇到过这个问题吗?

Answer 1:

我建议用1号。 不要写自己的解析器。 它只是将是一个巨大的头痛。

如何详细贵平面图必须? Android的SVG支持SVG相当好。 它只是不具有过滤器或光源的大力支持。 您的SVG是不会有那些在他们(我希望)。

如果你不想这样做,看看四树。 您可以呈现出一个巨大的图像,并打破下来到像格式的四叉树,然后只加载您需要的四边形。



Answer 2:

我曾经撰写的SVG libaray为Android的网站是http://www.vectoroid.com

缺少主要的是SVG弧形支持,这是目前固定的,将会在不久的将来发布。

我在寻找它的反馈,因为我一直在这大约一年。 所以,如果您有任何请告诉...



Answer 3:

我用另一种SVG为Android ; 看来,这是比较新的。

GPLv3的,CSS2支持,字体,文本和跨度,线性和径向梯度,SVG和SVGZ,初始过滤的支持,从资产图像​​,从网页和内嵌base64编码图像。 从所有最快我已经试过。

当然,过滤器的支持可能会更好,但除了这一点,工作得很好,甚至还可以显示20兆字节的SVG文件。



文章来源: Displaying SVG files in Android