光栅图像性能问题

Raster images performance issue

我们开始在 Android 应用程序中使用矢量绘图。 我已阅读有关在 android 应用程序中使用光栅图像时遇到的性能问题。

谁能解释出现性能问题的原因?

在应用程序中使用大量矢量绘图是否可以?

提前致谢!!

光栅图形具有更高的复杂性,以支持不能轻易转换为矢量(如形状)的图像。光栅图形背后的技术是使用像素,不像矢量使用线条,因为我们知道 Android 中的路径。

使光栅图像具有更多表示像素的路径元素。 Android 使用这些元素生成图像。尝试生成复杂矢量而不是加载给定位图时,复杂矢量会花费更多时间。

据我所知,您不应该在 Android 中使用光栅。它只支持矢量。

祝你好运

埃姆雷

这并不是 android 具体的。它更多地与不同的图像格式有关。光栅图像具有 "fixed" 大小,因为它始终由相同数量的像素组成,这是文件大小(以及加载后的内存占用)的主要因素之一。这也会影响您转换图像的能力。

如果要缩小光栅图像,则必须丢弃像素,这必然是一种有损变换(即使较小的尺寸使得很难或不可能注意到丢失的数据)。要放大图像,您必须插入像素:添加原始图像中不存在的数据,这意味着图像将开始像素化。

另一方面,对于矢量图像,存储的数据不是以像素为单位。相反,它存储 "paths" 指示计算机如何绘制图像。这些路径与大小无关,这意味着它的大小可以增加或减少 而不会损失数据或图像质量 。由于大小无关紧要,因此只有保存路径所需的数据(和其他数据)存储在矢量图像文件中。这意味着该文件(通常)比等效的光栅图像小得多,因此加载时占用的内存更少。

使用矢量意味着您的应用程序占用的内存更少,并且更容易适应不同的屏幕尺寸,因为 android 可以 shrink/expand 您的图形在不损失任何质量的情况下适应。