React Native:推荐使用PNG还是SVG图像?

7

我正在开发一个React Native项目,其中有30多个SVG格式的图标。 我想知道是否建议将这些图像转换为PNG格式,还是最好使用SVG文件。 如果最好使用SVG图像,则在React Native上显示SVG文件的最佳方法是什么?

3个回答

7

对于react-native应用程序,建议使用PNG而不是SVG,因为其渲染较少CPU密集型。与Web应用程序相比,用户不需要在每次启动应用程序时加载所有图像,而只需要在安装时加载,因此大小并不那么重要。

只需确保提供三个尺寸(或至少最后两个):

image.png
image@2x.png
image@3x.png

6
您可以始终选择使用SVG(可缩放矢量图形)而不是PNG格式,因为后者渲染速度较慢。
要渲染SVG资源,您可以使用react-native-svg。我发现这是React Native中最好的方法。但是它并不完全完善。 使用此软件包无法显示过滤器和阴影。对于这一点,请改用PNG。

10
SVG(可缩放矢量图形)的渲染比PNG(便携式网络图形)更加耗费CPU资源。 - DollarAkshay
2
这个回答没有提供任何证据或解释。就我个人而言,我认为在原生移动应用程序中(这是关于React-Native的),PNG格式优先考虑。请重新考虑是否应该接受这个答案。 - Thomas Ebert
1
@ThomasEbert 我必须同意你的看法,我没有任何强有力的证据表明 SVG 比 PNG 更好。我唯一记得使用 React Native 的时候是,与 PNG 相比,SVG 稍微更小一些。这对用户来说有多大的好处,我会留给他们自己决定。如果有人能提供更好的比较统计数据,我将非常愿意支持并点赞该回答。 - Thakur Karthik

6

SVG并不总是最佳方案。如果您的SVG没有经过优化,包含大量路径/线条或者需要在多个地方使用它,可能会生成大量视图并减缓您的应用程序。

最好的答案是:这取决于具体情况。


1
通常情况下,如果您不需要变量分辨率/缩放,则光栅图像效果更佳。 - A. O.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接