位图尺寸大于宽度和高度

1 memory android bitmap

我正在尝试加载一个图像(PNG)到 ImageView。此 PNG 文件的文件大小为 390.6KB。

一旦我将此 PNG 文件解码为位图,位图大小> 9MB。但位图的宽度和高度分别为 1920 和 1280。

为什么位图的大小 > ( bitmap.width * bitmap.height )?9MB 对于我的应用程序来说已经很大了,它加载了许多像这样的其他图像。

当我尝试通过给出样本大小 (2/4) 来对该图像进行采样时,图像的宽度和高度随着位图的大小而变化。

如何在内存大小中缩放此图像,但保留图像的宽度和高度?

Rag*_*ood 5

PNG 最多可以有 4 个通道 (ARGB),因此您的实际内存消耗将是width*height*4每个像素需要 4 个内存空间。

您可以对几乎任何其他图像格式进行类似的计算:width*height*channels

  • @Shagan 频道数量很重要。[(1920*1280*4)/(1024*1024) = 9.3MB](https://www.google.com/search?q=(1920+*+1280+*+4)%2F(1024*1024) )&aq=f&oq=(1920+*+1280+*+4)%2F(1024*1024)) (2认同)