public class MyView {
private Canvas mCanvas;
private Bitmap mBitmap;
private static Bitmap mFreeBitmap;
static {
mFreeBitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.RGB_565);
}
public MyView(){
...
mBitmap = BitmapFactory.createBitmap(...);
mCanvas = new Canvas(mBitmap);
...
}
public void deinit(){
// 销毁时调用
if(mBitmap != null && !mBitmap.isRecycled()){
mCanvas.setBitmap(mFreeBitmap);
mBitmap.recycle();
mBitmap = null;
}
}
}
记得销毁bitmap
本文介绍了一个自定义视图类MyView的实现方式,该类用于创建和管理Bitmap资源,并确保在不再使用时正确回收这些资源,避免内存泄漏。文章展示了如何初始化Bitmap及Canvas,并在对象销毁时释放它们占用的内存。
1048

被折叠的 条评论
为什么被折叠?



