Android中SVG和VectorDrawable的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android中SVG和VectorDrawable的区别相关的知识,希望对你有一定的参考价值。

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

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

SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.android);
imageView.setImageDrawable(svg.createPictureDrawable());
答案

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

另一答案

虽然android支持SVG

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

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

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

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

Android SDK中没有SVGParser类。

以上是关于Android中SVG和VectorDrawable的区别的主要内容,如果未能解决你的问题,请参考以下文章

QML中的SVG未在Android上显示

Android 安装包优化Android 中使用 SVG 图片 ( 批量转换 SVG 格式图片为 Vector Asset 矢量图资源 )

关于Android中使用SVG特性的探索与总结

在android中动态改变SVG图像颜色

android图片系列 (2) - 静态 SVG 图片

颤振导入'package:flutter_svg/flutter_svg.dart';不适用于 VS 代码和 Android 工作室