Android回收图片的bitmap,导致的Canvas: trying to use a recycled bitmap异常处理
来源:互联网 发布:网络短剧排名 编辑:程序博客网 时间:2024/05/19 13:18
在开发过程中,我们会需要加载很多的图片,必要的时候需要我们手动回收掉之前加载图片的bitmap,一般都是通过调recycle()方法,然后在让bitmap为null,做到图片的回收。类似于这样:
if(bitmap != null && ! bitmap()){ bitmap.recycle(); //此句造成的以上异常 bitmap = null; }
这样就会爆出上面说的那个异常,有很多人认为应该把recycle()去掉,但去掉后又会引起内存的增长,虽然将bitmap置为null,但系统并没有真正的回收仍然占有内存,即是调用了System.gc() 强制回后以后,内存仍然没有下去,但加上bitmap.recycle() ,又会引起 Canvas: trying to use a recycled bitmap 异常。解决方法就是捕获异常,然后抛出,即自定义imageview,在onDraw()方法里添加一个异常捕获,即可捕捉到上面的错误。
import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.widget.ImageView; /** * 重写ImageView,避免引用已回收的bitmap异常 * * @author zwn * */ public class MyImageView extends ImageView { public MyImageView (Context context, AttributeSet attrs) { super(context, attrs); } @Override protected void onDraw(Canvas canvas) { try { super.onDraw(canvas); } catch (Exception e) { System.out .println("MyImageView -> onDraw() Canvas: trying to use a recycled bitmap"); } } }
阅读全文
0 0
- Android回收图片的bitmap,导致的Canvas: trying to use a recycled bitmap异常处理
- Android Bitmap回收异常:Canvas: trying to use a recycled bitmap android.graphics.Bitmap解决
- 关于异常Canvas: trying to use a recycled bitmap android.graphics.Bitmap的解决
- 图片显示的内存回收出现RuntimeException: Canvas: trying to use a recycled bitmap
- Android手动回收bitmap,引发Canvas: trying to use a recycled bitmap处理
- Android手动回收bitmap,引发Canvas: trying to use a recycled bitmap处理
- Android手动回收bitmap,引发Canvas: trying to use a recycled bitmap处理
- Android手动回收bitmap,引发Canvas: trying to use a recycled bitmap处理
- Gesture控制图片缩放&Canvas: trying to use a recycled bitmap android.graphics.Bitmap异常
- Bitmap的recycle后Canvas: trying to use a recycled bitmap android.graphics.Bitmap问题
- Android手动回收bitmapisRecycled(),引发Canvas: trying to use a recycled bitmap处理
- 多方通话的时候遇到图片回收问题---目前没有方法解决 Canvas: trying to use a recycled bitmap android.graphics.Bitmap
- Canvas: trying to use a recycled bitmap android.graphics.Bitmap
- Canvas: trying to use a recycled bitmap android.graphics.Bitmap
- 解决Bitmap recycle异常:Canvas: trying to use a recycled bitmap android.graphics.Bitmap
- Bitmap回收异常:trying to use a recycled bitmap android.graphics.Bitmap问题解决
- Bitmap回收—Canvas: trying to use a recycled bitmap android.graphics
- 完美解决 trying to use a recycled bitmap android.graphics.Bitmap@41d的异常
- mybatis用法(二)mybatis结合log4j打印sql日志
- java中StringBuffer的用法
- 2017.11.21第十四课
- Ajax数据请求
- AngularJS添加删除查询排序
- Android回收图片的bitmap,导致的Canvas: trying to use a recycled bitmap异常处理
- postgres 查询命令详解
- Hibernate的一个注释 @Transient
- 操作系统
- Soket 编程 连接发送信息 udp
- Ext.tip.ToolTip 气泡提示
- 开启我的编程之路
- Java23种设计模式——命令模式
- java EE开发之Struts2第三章:数据传递(2)