我在Android應用上製作了一個簡單的白板,用戶可以在其中繪製一些東西。我想添加一個撤消功能,以便他能夠回到他之前的操作。存儲繪圖畫布並稍後恢復
在我的Touch Start
事件中,我添加了以下代碼,它基本上將當前畫布添加到ArrayList
並創建一個新的以避免相同的參考。
previousDrawing.add(this.canvas);
this.canvas = new Canvas(this.bitmap);
然後,在我的undo
方法,我添加以下代碼:
if (previousDrawing.size() > 0)
{
// Remove last
this.canvas = previousDrawing.remove(previousDrawing.size() - 1);
this.canvas.setBitmap(this.bitmap);
}
它不會在所有的工作。我的意思是,我可以使用this.canvas.drawPath(this.path, this.paint);
在畫布上畫畫,但不能保存和恢復以前的畫布。
你能幫我做到嗎?
在此先感謝。
編輯: 我也試過使用saveLayer method
。但是當我拯救時,我不再能夠在畫布上畫畫。這是一個正常的行爲?
對不起,它不起作用。 – Manitoba
看我的編輯,嘗試使用代碼 – NaviRamyle
非常感謝。它似乎在工作。祝你今天愉快。 – Manitoba