https://dev.classmethod.jp/smartphone/android/android-touch-drawing-undo/
こちらのサイトを参考にペイントアプリをつくっているのですが、RedoUndo機能にペイントした色情報を格納したく
private Deque<Paint> mUndoState = new ArrayDeque<Paint>(); private Deque<Paint> mRedoState = new ArrayDeque<Paint>();
のような配列に格納し、サイトのmUndoStack等と同じタイミングで追加削除しました。
undo関数のfor文内で以下のような処理を行う事で色情報を取得したかったのですが正常に出力されず、最後の色が全てのPathに反映されてしまいます。
int i=0; for (Path path : mUndoStack) { int local_i=0; for(Paint p:mUndoState) { if(local_i==i) { mPaint = p; break; } local_i++; } i++; canvas.drawPath(path, mPaint); mLastDrawCanvas.drawPath(path, mPaint); }
アドバイスお願い致します。
あなたの回答
tips
プレビュー