baidu_23478311
梅明子
采纳率91.9%
2015-01-29 02:57 阅读 4.8k

Android Bitmap使用recycle()方法回收出现异常的问题,告急!

5

我代码是这样的:

Bitmap bm = ((MyApp)context.getApplicationContext()).getBmp(id);
mView.change(Bitmap.createBitmap(bm,0,0,bm.getWidth(),bm.getHeight(),matrix, true));
if(bm!=null && !bm.isRecycled()){
    bm.recycle();
    System.gc();
    bm=null;
} 

图片说明
为什么这样会出现异常,这是引用造成的吗?但是为什么有些我这样的写法又不会报错呢?真的搞不懂怎么回事,谁帮帮我?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

  • 已采纳
    u014032607 云伊漫天 2015-01-29 06:21

    你的view中引用了bitmap吧,后面recycle以后,那么view就会引用一个空的bitmap,在执行绘制的过程当然会出现异常

    点赞 评论 复制链接分享
  • bdmh bdmh 2015-01-29 03:16

    先解除任何与bm的关系,比如有imgeview在使用这个bmp的话,先设置imageview的图为null,然后设置bmp=null,再回收

    点赞 1 评论 复制链接分享
  • danielinbiti danielinbiti 2015-01-29 06:27

    再用的bmp不能回收,这包括xml引用了资源方式等。所以只要你bmp不再用,随便你回收。

    点赞 评论 复制链接分享
  • lzq1039602600 何去处 2015-01-30 09:02

    你在回收的时候比bitmap在其他地方使用了,正如各位大神们说的。我就路过一下。

    点赞 评论 复制链接分享
  • qq_39634136 秀儿写bug 2019-08-15 11:35

    要求recyclerview一直显示着图片,要怎么进行回收?在什么时候回收比较好

    点赞 评论 复制链接分享

相关推荐