在我的Android应用程序中,我已经通过相机在ImageView上设置了图像。它的工作正常。但当我捕捉图像并返回到屏幕,并在imageview上设置该图像,如果我这样做3到4次,我得到这个错误的位数大小超过VM预算................ ......请为此提供任何解决方案。
this is my code below :
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
options.inTempStorage = new byte[16 * 1024];
image_from_camera.setImageBitmap(BitmapFactory.decodeFile(
"/sdcard/"+chore_string+".jpg", options));
i have done using bitmap.recycle(); or System.gc();
但这不起作用。我需要从位图中释放内存,再次单击相机按钮以在应用程序中拍摄第二张照片。请需要任何帮助........
感谢。 ...
答案 0 :(得分:1)
增加inSampleSize的值将减少加载图像所需的内存开销。将其更改为8,12或16 ......图像最终应该加载但看起来可能不太好。
但是,在加载之前,您似乎可能正在使用大量内存。
使用System.getRuntime()来获取运行时,然后查看最大内存,总内存和可用内存是什么,以便更好地了解您拥有多少空间。
在分配之前,您可能会泄漏内存。
http://developer.android.com/reference/java/lang/Runtime.html
另外(烦人地)如果你使用的设备无法运行android 3.0,那么所有使用的内存都将显示在运行时调用中。考虑使用3.0设备来更全面地了解内存使用情况。