ImageView自动释放bitmap(有使用局限性)

  • Post author:
  • Post category:其他


Bitmap bitmap;

@Override
public void setImageBitmap(Bitmap bm) {
   bitmap= bm;
   if(isDetached){//防止异步回调时 设置bm,可能异步回来的时候imageview已经执行了onDetachedFromWindow
      if(bitmap!= null && !bitmap.isRecycled()){
         bitmap.recycle();
         bitmap= null;
         setImageBitmap(null);
      }
      return;
   }
   super.setImageBitmap(bm);
}
@Override
   protected void onDetachedFromWindow() {
      //imageview不再显示时 回收图片
      if(bitmap!= null && !bitmap.isRecycled()){
         bitmap.recycle();
         bitmap= null;
         setImageBitmap(null);
      }
      isDetached = true;
      super.onDetachedFromWindow();
   }

boolean isDetached=false;

@Override
protected void onAttachedToWindow() {
   super.onAttachedToWindow();
   isDetached = false;
}



版权声明:本文为jscoolstar原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。