我正在尝试开发类似于paint app的应用程序。
我希望允许用户对canvas
执行重做或撤消操作。
我搜索了很多,但是找到了解释重做的任何例子
圆形,矩形等的撤消和撤消操作
大多数教程都解释了Line的重做和撤消。
任何帮助将不胜感激。
答案 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()方法中绘制操作中的所有内容......