无法将画布还原到较早的状态

时间:2019-04-13 00:26:07

标签: java android android-canvas

我希望能够画一条线,然后撤消该线。恢复/保存方法似乎无效。我从下面的代码中期望得到的是空白视图,因为在绘制线条之后,我们将画布还原为未绘制任何内容的状态。但是,最终结果是屏幕上出现一行,这意味着还原无效。

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    canvas.save();
    canvas.drawLine(100, 0, 100, screenWidth, paint);
    canvas.restore();
}

我看了其他相关的文章,但是他们使用的是路径而不是方法drawLine。 谁能告诉我我做错了什么或替代方案是什么?

1 个答案:

答案 0 :(得分:0)

关键是您必须保存要“绘画”的内容,然后使用绘制的线或元素访问数组。

public void onClickUndo () {  
    if (paths.size()>0) 
    {  
       undonePaths.add(paths.remove(paths.size()-1));
       invalidate();
     } 
    else 
    { 

    } 
     //msg to the user  
}