zoukankan      html  css  js  c++  java
  • 【Android】Bitmap加载图片错误 java.lang.OutOfMemoryError: bitmap size exceeds VM budget

    今天测试程序的时候出现下面的错误日志信息,程序当场挂掉

    07-09 14:11:25.434: W/System.err(4890):     java.lang.OutOfMemoryError: bitmap size exceeds VM budget
    07-09 14:11:25.435: W/System.err(4890):     at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
    07-09 14:11:25.435: W/System.err(4890):     at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:511)
    07-09 14:11:25.435: W/System.err(4890):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:325)
    07-09 14:11:25.435: W/System.err(4890):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:350)

    使用Bitmap加载图片的方法是这样的

         vipAvatar = (ImageView) findViewById(R.id.vip_avatar);
            File file = new File(Environment.getExternalStorageDirectory()
                    + IMAGE_FILE_NAME);
            if (file.exists()) {
               Bitmap bitmap = BitmapFactory.decodeFile(Environment
                        .getExternalStorageDirectory() + IMAGE_FILE_NAME);
                Drawable drawable = new BitmapDrawable(bitmap);
                vipAvatar.setImageDrawable(drawable);
            } 

    在使用BitmapFactory.decodeFile的时候出错了,查找原因

    android系统限制,只给图片分配8兆的内存,超过就崩,你图片几十KB,可能是压缩格式的,转换成bitmap就是本来的大小。

    增加VM的设置不太现实,如果是在模拟器上没问题,但是考虑到真机使用,问题还是要解决的。

    这里使用了一种方法,上述情况没有出现,方法是

    在退出Activity时,将bitmap回收

      @Override
        protected void onDestroy() {
            if (bitmap != null && !bitmap.isRecycled())
                bitmap.recycle();
            super.onDestroy();
        }

    //////////////////////////////////////////////

    原创声明 转载请注明

    本文出自 Ray-Ray的博客

    文章地址 http://www.cnblogs.com/rayray/p/3180017.html

    感谢大家的推荐和收藏

    你的支持! 我们的动力!

  • 相关阅读:
    CentOS下Apache开启Rewrite功能
    CentOS下Apache配置多域名或者多端口映射
    CentOS配置SVN服务器
    Windows下Apache配置域名
    PHP 返回13位时间戳
    主成分分析(PCA)特征选择算法详解
    均值、方差、标准差及协方差、协方差矩阵详解
    Jackson序列化日期类型的属性
    监控JVM内存使用情况,剩余空间小于2M时报警
    java 7中新增的CPU和负载的监控
  • 原文地址:https://www.cnblogs.com/rayray/p/3180017.html
Copyright © 2011-2022 走看看