转:bitmap设置图片尺寸缩小,避免内存溢出/OutOfMemoryError的优化方法
我们都知道Android的Dalvik VM为一个应用提供了大约16MB的内存,一般我们处理超过8MB的图片将会出现OutOfMemoryError异常(内存溢出异常),报如下错误:
?
20155392-byte external allocation too large for this process.
VM won't let us allocate 20155392 bytes
?
Java.lang.OutOfMemoryError : bitmap size exceeds VM budget????
public void distoryBitmap(){ if(null!=bmb&&!bmb.isRecycled()) bmb.recycle();
?
调用上面的代码可以基本解决这个问题.但是千万不要在view中的onDraw()中调用.因为onDraw()方法是系统循环调用.只要图片打开,系统就不停的调用该方法.?
最好的解决方案是在自定义的View中添加一个init()初始化方法的头部调用.或者在构造函数的顶部调用。
?
转自:http://shazhuzhu1.iteye.com/blog/965912