Android上的SVG支持

时间:2010-10-08 11:07:13

标签: android svg

Android是否支持SVG?任何一个例子?

11 个答案:

答案 0 :(得分:56)

最完整的答案是:

  • Android 2.x默认浏览器本身不支持SVG。
  • Android 3+默认浏览器支持SVG。

要向平台的2.x版本添加SVG支持,您有两个基本选择:

  1. 安装功能更强大的浏览器(如Firefox或Opera Mobile - 均支持SVG)
  2. 使用可以解析SVG并将其呈现为HTML5画布的JavaScript polyfill
  3. 如果您只是尝试将SVG用于个人用途或有限(可控制)的用户组,则第一个选项是可以的。如果您想在使用大型不受控制的用户群时使用SVG,这不是一个很好的选择。

    在后一种情况下,您想要使用polyfill。现在有许多JavaScript库可以删除SVG并渲染到画布。两个例子是:

    使用polyfill,您可以在所有Android 2.x版本的canavs中渲染SVG。

    有关此方法的更完整示例,您可以参考this blog post that discusses the use of the canvg polyfill在Android 2.x上使Kendo UI DataViz图表(基于SVG)工作。希望有所帮助!

答案 1 :(得分:22)

有一个新的开源库,支持加载和绘制SVG Basic 1.1文件:https://github.com/pents90/svg-android。性能很好,因为实际绘图是由android.graphics.Picture对象原生处理的。

答案 2 :(得分:8)

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

答案 3 :(得分:8)

有一个新的库(在积极开发中)androidsvg,允许将svg图像直接合并到项目中。它的优点是定义了一个SVGImageView,它允许一个svg直接在布局xml中加入。

最后,在android中包含svg非常简单。

更多详情:Stack Overflow post

答案 4 :(得分:8)

Android支持矢量绘图:https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html

还有一个Android SVG到VectorDrawable转换器: http://inloop.github.io/svg2android/

答案 5 :(得分:2)

我已经简要了解https://code.google.com/p/androidsvg/。到目前为止显示了我扔的所有svg文件。看起来很有希望。

答案 6 :(得分:1)

我刚刚为我自己的TPSVG库放了一个Github repo和示例repo,我最初是为我的应用程序创建的。

https://github.com/TrevorPage/TPSVG_Android_SVG_Library

https://github.com/TrevorPage/TPSVG_Example1

答案 7 :(得分:1)

我知道我的解决方案有些硬核,但效果很好,不需要任何外部库(至少不在你的最终代码中)并且非常快。

1)只需要一个现有的SVG加载库,例如svg-android-2(这是另一个答案中提到的svg-android的一个分支,只是有更多的功能和错误修正):https://code.google.com/p/svg-android-2/ < / p>

2)编写一个简单的应用程序,除了加载和显示SVG图像外别无其他任何操作。

3)修改SVG加载库,以便打印创建Picture类的Java代码或将其保存在String变量中。

4)将以这种方式获得的Java代码复制粘贴到您正在编写的应用程序中。

要获取有关此技术的更多信息并下载示例源代码,请访问我的博客: http://androiddreamrevised.blogspot.it/2014/06/transforming-svg-images-into-android.html

您可以在此处从Google Play获取此技术的有效示例: https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.svgtodrawablesample

以下是使用此技术创建的商业应用示例(米兰地铁地图): https://play.google.com/store/apps/details?id=pl.bartoszwesolowski.atmmetroplan

注意地图加载的速度以及它看起来多么漂亮,即使放大也是如此。

答案 8 :(得分:1)

结帐Support vector drawable。 Android studio有一个工具可以将SVG文件转换为.XML文件。

将AppCompat与ImageView(或ImageButton和FloatingActionButton等子类)一起使用时,您将能够使用新的app:srcCompat属性来引用矢量drawable(以及android:src可用的任何其他drawable): / p>

从Android支持库23.3.0开始,支持向量drawable只能通过app:srcCompat或setImageResource()

加载

答案 9 :(得分:0)

适用于Android的

Firefox支持SVG。

答案 10 :(得分:0)

适用于Android的

Opera Mobile支持svg,而Opera Mini支持静态svg内容。