android – Bitmap Image内存不足

前端之家收集整理的这篇文章主要介绍了android – Bitmap Image内存不足前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道有很多讨论关于 android位图图像的内存,但我想知道有人可以解释给我..

目前在我的应用程序中,我有一个列出图像缩略图(低质量)的活动,当我点击图像时,它会打开一个新的活动以全屏幕查看图像.在我的第二个活动课我有:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
bm = BitmapFactory.decodeFile(myImagePath,options);

然后我将其放入ImageView中显示.这样可以显示我的形象,使其品质全面.但是如果我点击返回,然后再次点击查看该图像(并重复这6次)..在第6次打开图像(activity2)我得到一个内存错误说,堆大小= 6919KB,分配= 3125KB,位图大小= 25848KB!

位图大小如何大?我假设它可能一直在创建新的实例,所以我决定把一个方法放在我的第二个活动中,当按下后键时,在这个方法我设置我的位图= null,也是System.gc()清除垃圾收集器但是这没有解决问题.在第六次点击缩略图时,仍然会出现内存不足错误,以全分辨率查看图像

谁能解释为什么?谢谢

解决方法

有一些很好的信息来自android,它详细解释了这一点,以及如何克服这个问题 here.

每个像素是4字节. 6M像素= 24MB

一张照片可以耗尽所有的内存.

Bitmaps take up a lot of memory,especially for rich images like photographs. For example,the camera on the Galaxy Nexus takes photos up to 2592×1936 pixels (5 megapixels). If the bitmap configuration used is ARGB_8888 (the default from the Android 2.3 onward) then loading this image into memory takes about 19MB of memory (2592*1936*4 bytes),immediately exhausting the per-app limit on some devices.

再次,我指出你这个great link我发现从另一个SO问题,有教程如何正确地解决问题.

猜你在找的Android相关文章