一度作成したパスがあり、それにRectを追加しています。
あるイベントで、パスをオフセットしPath.offset(...)
たり、パスPath.transform(...)
を再描画するためにキャンバスを無効にしたりしています。
しかし、パスは新しい場所で再描画されていません。
を使用してパスの境界を確認Path.computeBounds(...)
したところ、四角形が移動したことがわかります。Canvas.drawPath(...)
新しい場所でパスを再描画しない理由がわかりません。
新しい場所でパスを再描画する唯一の方法は、新しいパスを作成し、それに変換されたパスを追加することですが、毎回やりたいとは思いません。
m_objPath.offset(p_fltDx, p_fltDy);
//////////////////////////////
// With this lines it makes the path redrawn in the right place - but why should i ??
Path objPath = new Path();
objPath.addPath(m_objPath);
m_objPath = objPath;
//////////////////////////////
m_objCanvas.invalidate();
.
.
.
m_objCanvas.drawPath(m_objPath, m_objPaint);
助言がありますか?