一、Bitmap经常会遇到的问题。

Android java.lang.RuntimeException: Canvas: trying to use a recycled bitmap [email protected]

 二、使用注意事项

mImageVew = (ImageView) findViewById(R.id.imageView);


Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.pic);
 
//Bitmap.createScaledBitmap 以后原有的bitmap 可以recycle 了,不然会引起outofmemoryerror
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 100, 100, true);
 
//BitmapDrawable 创建以后如果要是用的话,构造方法里面的bitmap 千万不要recycle 如果recycle 了就会报错
BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), scaledBitmap);
 
bitmap.recycle();
//scaledBitmap.recycle();
 
mImageVew.setImageBitmap(bitmapDrawable.getBitmap());
//scaledBitmap.recycle();

探索,证实bitmap如果被用到视图上显示,那么这个bitmap一定不能进行回收,否则即使当时没报错,关闭屏幕回来 或者调用buildCache方法还是会报错,如果觉得bitmap过大,应该之前就进行压缩处理。

相关文章:

  • 2021-06-13
  • 2021-08-14
  • 2021-04-15
  • 2021-07-18
  • 2021-11-17
  • 2021-10-16
  • 2021-05-05
  • 2021-11-09
猜你喜欢
  • 2021-06-26
  • 2021-07-20
  • 2021-09-17
  • 2021-12-06
  • 2021-09-03
  • 2022-02-25
  • 2021-12-26
相关资源
相似解决方案