Android虽然支持SVG,为什么要转成VectorDrawable呢?
此代码示例显示 Android 中的 SVG:
SVG svg = SVGParser.getSVGFromResource(getResources(), R.raw.android);
imageView.setImageDrawable(svg.createPictureDrawable());
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 的文章。
虽然 android 支持 SVG
不,它没有,除了通过WebView
或第三方 SVG 渲染库。
为什么我们应该将 SVG 转换为 VectorDrawble?
欢迎您通过WebView
或第三方 SVG 渲染库显示 SVG 文件。VectorDrawable
是一种选择;这不是一个要求。
此代码示例显示 android 中的 svg:
Android SDK中没有SVGParser
类。