在Android中显示SVG文件

Mar*_*llo 25 svg android vector-graphics

我想创建一个可以在某个平面图上显示位置的应用程序.导航正以某种方式通过WiFi实现,我已经完成了,所以现在我有显示楼层平面图的问题.

它可能是某种矢量格式,在浏览互联网一段时间之后我已经确定它必须是svg文件.我找到了一些解决方案,但它对我不起作用!

  1. 库svg-android

    有机会显示.svg文件,但只显示"简单"文件.它仅适用于教程中的文件,但不适用于任何其他.svg文件(例如,您将使用Inkscape创建的其他文件).

    所以,我决定,我将解析.svg文件,从中创建DOM,以某种方式获取对象和属性,并通过OpenGL ES绘制它.

  2. Apache Batik

    乍一看,非常好的解决方案,但有一个问题.Android有一些"原生"apache库,当我尝试用蜡染做某事时,它会抛出NoClassDefFoundError,因为它不是在蜡染库中搜索,而是在"本机"库中搜索.

    当然,我们可以在我们的项目中添加源代码,只接受.svg文件的蜡染解析器并以某种方式编辑它,但是有很多工作,同样的成功我们可以编写自己的解析器.

  3. 小线

    没有试用版,但是如果我们看到它对svg文件和android的工作原理的描述,我们会看到只有这些文件的光栅化而且都是.

有没有比编写自己的解析器更好的解决方案?有人遇到过这个问题吗?

Bra*_*rad 10

我建议使用#1.不要编写自己的解析器.这将是一个巨大的头痛.

您的平面图有多详细?android-svg支持SVG相当不错.它对滤光片或光源没有很大的支持.你的SVG不会有它们(我希望).

如果您不想这样做,请查看四叉树.你可以渲染出一个巨大的图像,并将其分解为四边形格式,然后只加载你需要的四边形.