首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

创建图片时内存溢出-java.lang.OutOfMemoryError: bit地图 size exceeds VM budget

2012-12-26 
创建图片时内存溢出---java.lang.OutOfMemoryError: bitmap size exceeds VM budgetandroid系统中读取位图

创建图片时内存溢出---java.lang.OutOfMemoryError: bitmap size exceeds VM budget


创建图片时内存溢出-java.lang.OutOfMemoryError: bit地图 size exceeds VM budget

android系统中读取位图Bitmap时.分给虚拟机中图片的堆栈大小只有8M。所以不管是如何调用的图片,太多太大虚拟机肯定会报那个错误。超出图片内存预算那个错误.:java.lang.OutOfMemoryError: bitmap size exceeds VM budget

遇到这个问题是因为没有回收资源.

public void distoryBitmap(){    if(null!=bmb&&!bmb.isRecycled())        bmb.recycle();}
?

调用上面的代码可以基本解决这个问题.但是千万不要在view中的onDraw()中调用.因为onDraw()方法是系统循环调用.只要图片打开.

系统就不停的调用该方法.

最好的解决方案是在自定义的View中添加一个init()初始化方法的头部调用.或者在构造函数的顶部调用:

public class GifView extends View implements Runnable {    private Bitmap bmb;     public GifView(Context context, InputStream inputStream) {        super(context);        distoryBitmap();        bmb = BitmapFactory.decodeStream(is);    }}
?

热点排行