使用inJustDecodeBounds = true解码位图会占用内存吗?

时间:2014-12-17 11:01:55

标签: android bitmap

我使用以下方法确定位图在内存中的大小:

bitmapOptions.inJustDecodeBounds = true;
BitmapFactory.decodeFile(imagePath, bitmapOptions);
long bitmapSizeInMB = (bitmapOptions.outWidth *     bitmapOptions.outHeight * 4) / 1048576L);
bitmapOptions.inJustDecodeBounds = false;

结果,例如,5MB

但是,当我使用

解码位图时,会发生什么
bitmap = BitmapFactory.decodeFile(imagePath, bitmapOptions);

并将其设置为imageview,Logcat中的GC系统消息称RAM使用量增加了20 MB,而不是5。

所以我的问题是,通过这个位图大小检查操作,我是否会增加RAM的使用量?

1 个答案:

答案 0 :(得分:0)

我认为ImageView会根据位图大小为图像分配ram。如果位图已经设置,则无论如何设置,因为你提供了尺寸附带的bitmapOptions。