我可以在大型项目中使用 SVG 而不是 PNG

Posted

技术标签:

【中文标题】我可以在大型项目中使用 SVG 而不是 PNG【英文标题】:Can I use SVGs instead of PNGs to large scale project 【发布时间】:2020-04-04 14:31:16 【问题描述】:

我们已经在 iosandroid 中构建了像 DocuSign 这样的项目,我们非常广泛地使用以 PNG 形式加载的文档,用户可以在其中快速移动到他们选择的页面(例如 1 -> 25 ),所以我们密切合作以使其稳定和快速,但我们要求在缩放时不被像素化(PNG 缺乏并被像素化),所以我在 iOS 支持的矢量库上进行了研发,发现 PDF 不适合满足我们的要求,但 SVG 可能适合。但由于 iOS 本身不支持 SVG,所以

在 iOS 中使用任何第三方支持 SVG 是否正确? 像 https://github.com/SVGKit/SVGKit 在大型项目中一样? 内存管理是否会影响我阅读了很多链接 提到它不推荐像 https://www.quora.com/Should-you-use-SVG-files-for-images-in-an-iOS-app ?

有人遇到过这种问题吗?寻找建议和解决方案。

注意:这些图片来自云端(我们的服务器、谷歌驱动器、保管箱和一个驱动器)

【问题讨论】:

svgs 在 android 上也不受原生支持。您必须转换为矢量绘图 【参考方案1】:

你可以使用 Vector xml

    右键点击rec>drawable文件夹 选择矢量资源 然后选择本地文件(SVG) 选择svg文件的路径

并导入它会将您的 SVG 转换为矢量 xml 文件,您可以使用此矢量 drawable 代替 PNG 文件

【讨论】:

这些图片来自服务器 为此我使用github.com/ar-android/AndroidSvgLoader这个库

以上是关于我可以在大型项目中使用 SVG 而不是 PNG的主要内容,如果未能解决你的问题,请参考以下文章

SVG图标与现代网站中的PNG图标

使用 PHP 将 SVG 图像转换为 PNG

使用 C# 将 SVG 转换为 PNG [关闭]

如何使用 PNG 徽标而不是圆圈

在Linux上调试大型C ++项目

在 ReactVue项目中使用 SVG