【问题标题】:SVG to Android Shape [closed]SVG 到 Android 形状 [关闭]
【发布时间】:2011-02-27 11:34:57
【问题描述】:

我想知道在 Android 中使用 Shape 类的矢量绘图可能与另一个矢量绘图标准有何相似之处。

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

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

【问题讨论】:

  • 我也在寻找这样的东西,我很困惑为什么不实施喷气机。正如您提到的绘图命令的简单转换就足够了(至少对于 SVG 的一个子集)。我什至有时为非常简单的形状手动完成此操作(用这样的渐变定义按钮背景很棒),我或多或少对 SVG 细节一无所知。
  • 好问题,关闭它的错误调用。我认为拥有一个从 SVG 到 Shape 的转换器是一个绝妙的主意。我可能会写一个,但我讨厌 XSLT,所以我可能会使用 C# 或者我猜它应该是 Java。
  • 我建议你使用 VectorDrawable。我找到的最佳解决方案是 BetterVectorDrawable 库以及 SVG 到 VectorDrawable 转换器。 BetterVectorDrawable 是适用于 Android 4.0+ 的 VectorDrawable 实现,在 Android 5.0+ 上具有可配置的回退行为。 SVG to VectorDrawable Converter 是 SVG 图像到 Android VectorDrawable XML 资源文件的批量转换器。在线版:a-student.github.io/SvgToVectorDrawableConverter.Web

标签: android svg vector-graphics shape


【解决方案1】:

另一个非 GPL 库(这个是 Apache License 2.0),用于 Google 的 Androidify 应用程序:svg-android

https://github.com/pents90/svg-android

【讨论】:

    【解决方案2】:

    嗯,不完全是。但我确实将 libsvg 移植到了 android,这使您能够加载 SVG 文件并将它们绘制到 Canvas。

    请查看:

    https://launchpad.net/libsvg-android

    【讨论】:

    • 网站说必须用bazaar下载,够简单!
    • 如果不是 GPL 就好了!只适用于免费软件,让您知道
    • @AntonP 刚刚尝试使用由 inkscape 创建的图像进行 lib,大约 300kb。无法渲染:内存不足错误:))
    【解决方案3】:

    我能找到的最接近的是svg4mobile

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        目前,包括我在内的一些人独立工作。
        您可以在这些文章中找到有效的解决方案:
        Android. ImageView with SVG Support.
        Android ImageView and Drawable with SVG support

        【讨论】:

        • 试过都不能编译 ndk 部分,如果你要更新项目设置会很糟糕
        【解决方案6】:

        伟大的AndEngine 有一个扩展,用于加载 SVG 并将其光栅化到任何分辨率的纹理中,具有颜色替换和其他强大功能。真的有效。例如,您可以尝试引擎作者的a free game

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

        【讨论】:

        • “伟大的 AndEngine...” 最好说“伟大的越野车 AndEngine...”
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-01
        相关资源
        最近更新 更多