createBitmap的使用浅谈

来源:互联网 发布:java spring框架是什么 编辑:程序博客网 时间:2024/06/06 13:00

昨天在尝试用Canvas做一个画图工具的时候,考虑到做一个撤销功能。
于是自然而然地定义了previousBitmap和currentBitmap两个全局对象。

private Bitmap previousBitmap;private Bitmap currentBitmap;

然后在相应的事件响应里进行直接传递:

previousBitmap = currentBitmap;

结果,由于currentBitmap绑定了画布 canvas,previousBitmap并没有将某一时刻的currentBitmap暂存下来,而是以指针的形式指向了currentBitmap,因此无法实现暂存上一次画笔的图像。

后来才发现这是如此低级的错误,Bitmap本身有一个方法:

Bitmap.createBitmap(Bitmap src);

其全部参数如下:

这里写图片描述

返回源Bitmap的复制值,也就是说这样的话就不是指向源map了,而是获得了其某一时刻的拷贝。
用法:

previousBitmap = Bitmap.createBitmap(currentBitmap);

最后成功实现了保存上一笔画的map,进而达到了基本的撤销功能。

0 0
原创粉丝点击