Android中SVG和VectorDrawable的区别

问题描述 投票:4回答:2

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

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

SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.android);
imageView.setImageDrawable(svg.createPictureDrawable());
android svg android-vectordrawable
2个回答
3
投票

您提到的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 here的文章。


2
投票

虽然android支持SVG

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

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

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

这段代码示例显示了android中的svg:

Android SDK中没有SVGParser类。

© www.soinside.com 2019 - 2024. All rights reserved.