0

キャンバスにパスを描画する方法と、元に戻す/やり直す方法を理解しています。しかし、今度は、MSペイントの場合と同じように、ドラッグ方法に応じて動的にサイズ変更される図形(線、円、長方形)を描画したいと思います。

「drawLine」を使用すると、線が永久に存在し、それを消去して新しい指の位置に再描画する方法がありません。指をドラッグするときに円の幅を常に変化させたいので、円と同じです。したがって、古いパスを消去し(ビットマップ上の他のすべてのパスをそのまま維持)、新しいパスをその場所に描画する必要があります。

これをたくさん探してきましたが、どうやってそれをするのかまだわかりません。間違ったキーワードを使用しているのかもしれませんが、わかりません。ポインタはありますか?

4

2 に答える 2

0

指を動かすたびに、基になるビューのinvalidate()関数を呼び出すと、背景全体の消去がトリガーされます

public void invalidate()以降:APIレベル1

ビュー全体を無効にします。ビューが表示されている場合、onDraw(android.graphics.Canvas)は将来のある時点で呼び出されます。これは、UIスレッドから呼び出す必要があります。UI以外のスレッドから呼び出すには、postInvalidate()を呼び出します。

次に、指の新しい位置に基づいて形状を再描画します。

于 2012-07-12T21:58:29.690 に答える
0

なんとかやった。オフスクリーン描画の仕組みを誤解しました。アイデアは、あなたが望む形になった後、つまり「タッチアップ」でのみビットマップに書き込むことです。それまでは、Draw...の「canvas」オブジェクトを使用して形状を描画します。

于 2012-07-14T03:47:20.870 に答える