bitmap size exceeds VM budget

we can avoid this error by the following parts:
1  its not how much images the screen has, but being carefull on cleaning everything up when finishing the activity 
2   Technique to Avoid, #3: Going Overboard with Layouts:
Due to changes in the View rendering infrastructure, unreasonably deep (more than 10 or so) or broad (more than 30 total) View hierarchies in layouts are now likely to cause crashes. This was always a risk for excessively complex layouts, but you can think of Android 1.5 as being better than 1.1 at exposing this problem. Most developers won't need to worry about this, but if your app has very complicated layouts, you'll need to put it on a diet. You can simplify your layouts using the more advanced layout classes like FrameLayout and TableLayout.

If your application  involve many images,(some times may be seldom.),if causing this error,you can check the following aspects:

1 .   Is your "Bitmap" object  released before the "Activity"  finished which it's belonged ?
         you can use "recycle()","System.gc()", if a  arraylist,you can use "clear()"  ,do it  before your activity finished.
         for example:

try{                  
      Intent myintent=new Intent();
      Bundle bun=new Bundle();
      bun.putInt("position", position);
      myintent.putExtras(bun);
      setResult(RESULT_OK,myintent);          
      imageAdapter.bitmaplist.clear();
      System.gc();
      thisActivity.finish();
      }
      catch (OutOfMemoryError e) {
          e.printStackTrace();
      }

2. You can consider to reduce the  qulity of the image .Although is not a good idea.

BitmapFactory.Options opts=new BitmapFactory.Options();
                    opts.inSampleSize =2; //the value you can set bigger than 1.
                    Bitmap imgBitmap=null;
                    imgBitmap = BitmapFactory.decodeStream(fs, null, opts);

3. Make pictures smaller.when you generate the picture ,you can do :

Bitmap bitmap = Bitmap.createScaledBitmap(cacheBitmap,330, 300, false);   

4. Definition your software' memory size,we can use this class: dalvik.system.VMRuntime

private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ;

when using:

VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); //here,set 6MB

5. make the Dalvik virtual machine optimized on heap memory allocation.

private final static float TARGET_HEAP_UTILIZATION = 0.75f;

when using:

VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION);

6. Don't forget.. make the debug more convenient

try {
    
        ……
    
    } catch (OutOfMemoryError e) {
    
        e.printStackTrace();
    
    }

Ok ,that's all.

bitmap size exceeds VM budget的更多相关文章

  1. java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决方法

    1 BitmapFactory.decodeFile(imageFile); 用BitmapFactory解码一张图片时,有时会遇到该错误.这往往是由于图片过大造成的.要想正常使用,则需要分配更少的内 ...

  2. android报错及解决1--Bitmap加载时,报bitmap size exceeds VM budget

    报错描述: 用Bitmap加载图片资源时,报错java.lang.OutOfMemoryError: bitmap size exceeds VM budget 原因分析: android系统限制,只 ...

  3. 【Android】Bitmap加载图片错误 java.lang.OutOfMemoryError: bitmap size exceeds VM budget

    今天测试程序的时候出现下面的错误日志信息,程序当场挂掉 07-09 14:11:25.434: W/System.err(4890): java.lang.OutOfMemoryError: bitm ...

  4. (转)解决 bitmap size exceeds VM budget (Out Of Memory 内存溢出)的问题

    在做图片处理的时候最常遇到的问题估计就是Out Of Memory (内存溢出)了 网上对这种问题的解决方案很多,原来无非就是压缩图片大小 本不该重复造轮子,但实际中却遇见了问题,写出来希望后来者能引 ...

  5. Android解决java.lang.OutOfMemoryError: bitmap size exceeds VM budget(转)

    昨天遇到这个问题就是从一个输入流里调用BitmapFactory.decodeStream(this.getContentResolver().openInputStream(uri))得到一个bit ...

  6. 【android错误】bitmap size exceeds 32bits

    使用图片缩放时遇到这么个问题: java.lang.IllegalArgumentException: bitmap size exceeds 32bits 后来一行行查代码,发现原来是 scale ...

  7. [Intellij IDEA]File size exceeds configured limit(2560000). Code insight features are not available

    在使用 IDEA, 发现一个问题File size exceeds configured limit (2560000). Code insight features not available.

  8. File attachment or query results size exceeds allowable value of 1000000 bytes.

    今天早晨,收到了作业执行失败的邮件(前几天还能正常执行该作业.不知为何今天出错) 邮件显示,作业的第三个步骤报错. step3内容: msdb.dbo.sp_send_dbmail     @prof ...

  9. Intellij IDEA中file size exceeds configured limit解决

    把Hadoop源码导入IDEA中后,其中有个ClientNamenodeProtocolProtos文件代码高达82997行,IDEA直接就不把它当java类看了,报file size exceeds ...

随机推荐

  1. HDP2.4安装(一):Centos7安装

    在进入大数据领域来,一直使用微软的Azure HDInsight,当前在中国区仅支持在Windows系统上部署集群,虽然创建的过程很简单,但对于开发人员来说,就是一个黑盒子,在更深入的研究和开发扩展的 ...

  2. Angular学习(7)- 模板2

    示例: <!DOCTYPE html> <html ng-app="MyApp"> <head> <title>Study 8< ...

  3. android学习笔记25——事件处理Handler

    Handler消息传递机制 ==> android消息机制是另一种形式的“事件处理”,这种机制主要是为了解决android应用的多线程问题. ——android平台不允许Activity新启动的 ...

  4. 求助:为什么我用360浏览器和UC浏览器打不开JAVA中的index.html文件? 一打开就显示浏览器首界页

    如下图,在oracle官网下载了一个JAVA的API文档,双击index.html时打开是浏览器的首页,不知道为什么?请问怎样才能以chm文档格式显示?

  5. POJ3318--Matrix Multiplication 随机化算法

    Description You are given three n × n matrices A, B and C. Does the equation A × B = C hold true? In ...

  6. 黄聪:wordpress更新失败‘C:\Windows\TEMP/wordpress.tmp’,更换临时保存路径的解决办法

    1.如果可劲进入远程桌面,则给C:\WINDOWS\TEMP目录设置IIS访问权限. 2.虚拟机的方法:首先用FTP软件在网页空间wp-content目录中新建一个[tmp]目录,然后在wp-conf ...

  7. Java执行main方法,异常为:could not find the main class.program will exit

    未解决. Java执行方法,异常为:could not find the main class.program will exitmain 原文地址:http://rogerfederer.iteye ...

  8. sql语句(mysql)

    MySQL1.数据库数据类型 int 整型 double 浮点型 如double(5,2)最多5位,其中有两位小数 char:固定长度字符串,如char(255),数据长度不足会用空格补足 varch ...

  9. CF109 C. Lucky Tree 并查集

    Petya loves lucky numbers. We all know that lucky numbers are the positive integers whose decimal re ...

  10. 用widthStep的方法来增加某范围的像素----与imageROI对比

    //用widthStep的方法来增加某范围的像素 //作者:sandy //时间:2015-10-5 #include <cv.h> #include <highgui.h> ...