Android中SVG和VectorDrawable的区别

Sad*_*ini 8 svg android android-vectordrawable

Android虽然支持SVG,但为什么要转换成VectorDrawable呢?

此代码示例显示了 Android 中的 SVG:

SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.android);
imageView.setImageDrawable(svg.createPictureDrawable());
Run Code Online (Sandbox Code Playgroud)

Bre*_*ntM 7

您提到的 SVGParser 功能是对 Android 的 SVG 支持的第三方实现。

在 Android 中使用 SVG 的主要问题是:

  • SVG 文件可能非常复杂,渲染速度可能非常慢

  • 我使用过的所有第三方实现都有错误并且无法正确加载或渲染某些 SVG 文件

  • 大多数第三方实现已被放弃,似乎没有一个得到积极维护

我在以下文章中写了更多关于在 Android 中使用 SVG 文件和可用的第三方库的文章:

https://androidbycode.wordpress.com/2015/02/27/vector-graphics-in-android-part-1-svg/

VectorDrawable 支持 SVG 格式的子集,旨在确保快速渲染。我已经写VectorDrawable以及如何将现有的SVG文件转换成VectorDrawable这里


Com*_*are 2

虽然android支持SVG

WebView不,除了通过或第三方 SVG 渲染库之外,它不会。

为什么我们应该将 SVG 转换为 VectorDrawble?

WebView欢迎您通过或第三方 SVG 渲染库显示 SVG 文件。VectorDrawable是一个选项;这不是一个要求。

此代码示例显示了 android 中的 svg:

SVGParserAndroid SDK 中没有类。