Android上的SVG支持

Android支持SVG吗? 任何例子?

最完整的答案是这样的:

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

要将SVG支持添加到平台的2.x版本,您有两个基本的select:

  1. 安装更强大的浏览器(如Firefox或Opera Mobile – 均支持SVG)
  2. 使用可以parsingSVG并将其呈现到HTML5canvas的JavaScript填充

第一种select是好的,如果你只是想使SVG的个人用途或有限(可控制)的用户组工作。 如果您想在使用SVG的同时定位一个庞大的,不受控制的用户群,那么这不是一个好的select。

在后面的例子中,你想使用一个polyfill。 今天有很多JavaScript库可以用来压缩SVG并渲染到canvas上。 两个例子是:

  • canvg
  • fabric.js

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

有关此方法的更完整示例,可以参考本博客文章,讨论如何使用Canvg polyfill将Kendo UI DataViz图表(基于SVG)用于Android 2.x. 希望有所帮助!

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

目前包括我在内的一些人独立工作。
您可以在这些文章中find工作解决scheme:
Android系统。 带有SVG支持的ImageView。
Android ImageView和可绘制SVG支持

有一个新的图书馆(在积极发展) androidsvg允许将svg图像直接纳入到项目。 它具有定义SVGImageView的好处,它允许直接在布局xml中合并svg。

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

更多细节: 堆栈溢出后

Android支持vector绘制: https : //developer.android.com/reference/android/graphics/drawable/VectorDrawable.html

并且存在一个Android SVG到VectorDrawable转换器: http ://inloop.github.io/svg2android/

我简要介绍了一下https://code.google.com/p/androidsvg/ 。 到目前为止显示了我扔在它的所有svg文件。 看起来很有希望。

我刚刚为我自己的TPSVG库找了一个Github回购和示例回购,我最初是为我的一个应用程序创build的。

https://github.com/TrevorPage/TPSVG_Android_SVG_Library

https://github.com/TrevorPage/TPSVG_Example1

我知道我的解决scheme是有点硬核,但它工作得很好,不需要任何外部库(至less不在你的最终代码),并且是非常快的。

1)只需要一个现有的SVG加载库,例如svg-android-2(这是另一个回答中提到的svg-android的一个分支,只是更多的function和bug修复): https : //code.google.com / p / SVG的机器人-2 /

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

3)修改SVG加载库,以便打印创buildPicture类的Java代码或将其保存在Stringvariables中。

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

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

注意地图加载的速度有多快,即使在放大时也看起来有多漂亮。

Firefox for Android支持SVG。

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

签出支持vector绘制 。 Android工作室有一个工具来将SVG文件转换为.XML文件。

当使用AppCompat与ImageView(或ImageButton和FloatingActionButton等子类)时,您将能够使用新的应用程序:srcCompat属性来引用vector绘图(以及android:src中可用的任何其他绘图):

从Android支持库23.3.0开始,支持vector绘图只能通过app来加载:srcCompat或setImageResource()