我希望能够绘制一条线然后撤消它。恢复/保存方法似乎不起作用。我对以下代码的期望是拥有一个空白视图,因为在绘制一条线之后,我们将画布恢复到没有绘制任何内容的状态。但是,最终结果是屏幕上有一条线,这意味着恢复不起作用。
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.drawLine(100, 0, 100, screenWidth, paint);
canvas.restore();
}
我查看了其他相关帖子,但他们使用路径而不是drawLine方法。谁能告诉我我做错了什么或者替代方案可能是什么?
关键是您必须保存“绘画”的内容,然后使用您绘制的线条或元素访问数组。
public void onClickUndo () {
if (paths.size()>0)
{
undonePaths.add(paths.remove(paths.size()-1));
invalidate();
}
else
{
}
//msg to the user
}