私は Android グラフィックスを使い始めたばかりで、この問題に包括的に立ち往生しています。現在、描画アプリの開発に取り組んでおり、基本的な作業が完了したら、よりクールなものに拡張します。
既存の画像 (以前のすべてのパスを含む) にパスを描画しようとしていますが、パスの境界で表される四角形が同時にソリッド シェイプとして描画され、背景画像のビットが上書きされます。
次のコマンドを使用してキャンバスを無効にし、必要な更新を描画しています。
invalidate
(
(int) (dirtyRect.left - HALF_STROKE_WIDTH),
(int) (dirtyRect.top - HALF_STROKE_WIDTH),
(int) (dirtyRect.right + HALF_STROKE_WIDTH),
(int) (dirtyRect.bottom + HALF_STROKE_WIDTH)
);
私のonDrawには次のものがあります:
if (drawing.size() > 0) //if there are paths
{
canvas.drawPath(drawing.get(drawing.size() - 1), paint); //draw the latest path
}
図面 (パス オブジェクトの LinkedList として定義) にすべてのパスを描画することもできますが、それは非常に遅いです。パスの周りにばかげた四角形が表示されることなく、キャンバスに最新のパスを描画したいだけです。
drawPath を呼び出す前に canvas.drawColor(Color.TRANSPARENT) を試しましたが、役に立ちませんでした。
助けてください!