无法将画布恢复到早期状态

问题描述 投票:0回答:1

我希望能够绘制一条线然后撤消它。恢复/保存方法似乎不起作用。我对以下代码的期望是拥有一个空白视图,因为在绘制一条线之后,我们将画布恢复到没有绘制任何内容的状态。但是,最终结果是屏幕上有一条线,这意味着恢复不起作用。

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

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

java android android-canvas
1个回答
0
投票

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

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

    } 
     //msg to the user  
}
© www.soinside.com 2019 - 2024. All rights reserved.