android中位图大小超过VM预算

android中位图大小超过VM预算,android,Android,在我的android应用程序中,我已将图像设置为ImageView相机拍摄。工作正常。但当我捕获图像并在imageview上设置该图像返回屏幕时,如果我在3到4次出现此错误时位图大小超过VM预算…………请需要任何解决方案 this is my code below : BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4;

在我的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();  
但这是行不通的。我需要从位图中释放内存,然后再次单击相机按钮在应用程序中拍摄第二张照片。需要帮助吗


谢谢

增加inSampleSize的值将减少加载图像所需的内存开销。将其更改为8、12或16。。。图像最终应该加载,但看起来可能不是很好

然而,在加载之前,您可能正在使用大量内存

使用System.getRuntime()获取运行时,然后查看最大内存、总内存和可用内存,以便更好地了解您有多少空间

在此分配之前,您可能正在泄漏内存


另外(令人烦恼的是)如果你使用的设备不能运行android 3.0,那么运行时调用中不会显示所有使用的内存。考虑使用一个3设备来更全面地理解内存使用。

< P>增加iSimuleSeVE的值将减少加载图像所需的内存开销。将其更改为8、12或16。。。图像最终应该加载,但看起来可能不是很好

然而,在加载之前,您可能正在使用大量内存

使用System.getRuntime()获取运行时,然后查看最大内存、总内存和可用内存,以便更好地了解您有多少空间

在此分配之前,您可能正在泄漏内存

另外(令人烦恼的是)如果你使用的设备不能运行android 3.0,那么运行时调用中不会显示所有使用的内存。考虑使用3设备来更全面地理解内存使用。