光栅图像性能问题

时间:2016-11-29 12:15:30

标签: android image performance android-vectordrawable rasterizing

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

有人可以解释出现性能问题的原因吗?

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

提前致谢!!

2 个答案:

答案 0 :(得分:0)

光栅图形更复杂,支持无法轻松转换形状等矢量的图像。光栅图形背后的技术是使用像素,不像矢量使用线条,因为我们知道Android中的路径。

因此,光栅图像具有更多表示像素的路径元素。 Android使用这些元素生成图像。在尝试生成而不是加载给定位图时,复杂向量需要更多时间。

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

祝你好运

埃姆雷

答案 1 :(得分:0)

这不是特定于Android的。它更多地与不同的图像格式有关。光栅图像具有固定的"大小,在某种意义上它总是由相同数量的像素组成,这是文件大小(以及加载后的内存占用量)的主要因素之一。这也会影响您转换图像的能力。

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

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

使用矢量意味着您的应用占用更少的内存,并且更容易适应不同的屏幕尺寸,因为Android可以缩小/扩展您的图形以适应而不会失去任何质量。

相关问题