抛出内存不足的错误

抛出内存不足的错误

本文介绍了bitmap.copy()抛出内存不足的错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我使用通用图像装载库加载图像,但是当我打电话复制()上在某些情况下,我得到的OutOfMemoryError 加载的位图文件。
这里是我的code:

  ImageLoader.getInstance()的LoadImage(路径,新ImageLoadingListener(){        @覆盖
        公共无效onLoadingStarted(字符串为arg0,ARG1查看){
            // TODO自动生成方法存根        }        @覆盖
        公共无效onLoadingFailed(字符串为arg0,ARG1查看,FailReason ARG2){
            // TODO自动生成方法存根        }        @覆盖
        公共无效onLoadingComplete(字符串为arg0,ARG1查看,位图ARG2){
            BM = ARG2;
        }        @覆盖
        公共无效onLoadingCancelled(字符串为arg0,ARG1查看){
            // TODO自动生成方法存根        }
    });
 位图BM2 = bm.copy(Bitmap.Config.ARGB_8888,真); //其中的崩溃发生

我还需要第二次位图不是是可变的,所以我可以借鉴的。


解决方案

首先尝试找到一点时间来阅读好官方文档关于位图:的

它会给你理解为什么当 java.lang.OutofMemoryError 发生。而如何避免它。

那你的问题:看到这篇文章:

//this is the file going to use temporally to save the bytes.

File file = new File("/mnt/sdcard/sample/temp.txt");
file.getParentFile().mkdirs();

//Open an RandomAccessFile
/*Make sure you have added uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
into AndroidManifest.xml file*/
RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");

// get the width and height of the source bitmap.
int width = bitmap.getWidth();
int height = bitmap.getHeight();

//Copy the byte to the file
//Assume source bitmap loaded using options.inPreferredConfig = Config.ARGB_8888;
FileChannel channel = randomAccessFile.getChannel();
MappedByteBuffer map = channel.map(MapMode.READ_WRITE, 0, width*height*4);
bitmap.copyPixelsToBuffer(map);
//recycle the source bitmap, this will be no longer used.
bitmap.recycle();
//Create a new bitmap to load the bitmap again.
bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
map.position(0);
//load it back from temporary
bitmap.copyPixelsFromBuffer(map);
//close the temporary file and channel , then delete that also
channel.close();
randomAccessFile.close();

And here is sample code.

这篇关于bitmap.copy()抛出内存不足的错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-08 21:57