使用Android中的SurfaceView重做和撤消形状

时间:2014-02-23 15:43:00

标签: android android-canvas surfaceview undo-redo

我正在尝试开发类似于paint app的应用程序。

我希望允许用户对canvas执行重做撤消操作。 我搜索了很多,但是找到了解释重做的任何例子 圆形,矩形等的撤消和撤消操作 大多数教程都解释了Line的重做和撤消。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

将每个操作存储在列表中,然后如果要撤消某些操作,只需删除放入列表中的最后一个操作。链接列表或堆栈可以工作。

伪代码

Stack<Action> operations=new Stack<Action>();
Stack<Action> redos=new Stack<Action>();

每次用户做过某些事情

operations.push(new Action(actiontype,ccoordinates));

for undo

redoes.push(operations.pop());

重做

operations.push(redos.pop());

并在你的onDraw()方法中绘制操作中的所有内容......