【问题标题】:Raster images performance issue光栅图像性能问题
【发布时间】:2016-11-29 12:15:30
【问题描述】:

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

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

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

提前致谢!!

【问题讨论】:

    标签: android image performance android-vectordrawable rasterizing


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我有一个粗略的想法,但你说得很清楚。谢谢!!
    • @MilindGaikwad 很高兴为您提供帮助!不要忘记接受您更喜欢的答案。
    【解决方案2】:

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

    这样光栅图像就有更多代表像素的路径元素。 Android 使用这些元素生成图像。尝试生成复杂矢量而不是加载给定的位图时需要更多时间。

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

    祝你好运

    埃姆雷

    【讨论】:

    • 从下面的棒棒糖开始支持向量,我们需要使用支持库生成普通图像,这些图像是光栅格式(png)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 2020-08-24
    • 2021-06-14
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 2022-06-16
    相关资源
    最近更新 更多