0

私は 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) を試しましたが、役に立ちませんでした。

助けてください!

4

1 に答える 1

0

porterduff モードを調べると、ブレンドできます

于 2013-02-01T01:07:22.133 に答える