0

画面上で指の動きを描画するために、ApiDemos で利用可能な FingerPaint の例を使用しています。

線の代わりに、パス オブジェクトに円を追加しています。onDraw メソッドが呼び出されると、円を含むこのパスが描画されます。

今私の問題は、指をゆっくり動かすとonTouchEventで指定されたポイントに円が正しく描画されますが、線とは異なり、ある程度の速度で指を動かすと円がほとんど描画されないことです。

デバッグ後、指をすばやく動かしているときに、一部のタッチ イベントがビューによってドロップされ、そのポイントに円が描画されないことがわかりました。

誰でもこれについていくつかの指針を与えることができますか。なぜこれが起こっているのですか?

4

1 に答える 1

0

コードを見なくても思いつくことが 2 つあります。

まず、touchEvents の間に記録された履歴ポイントを取得し、それらも使用していますか? そうしないと、あなたが話しているような深刻なジャーキネスが発生します。

あなたがそうで、それが彼らを拾っていないだけなら、あなたができる最善のことは、それをだますことかもしれません. 現在描かれている円と最後に描かれた円の間の距離を確認してください。円の直径を超えすぎる場合は、円と同じ太さの線を両端に円を描いて描きます。

于 2012-06-24T22:53:42.917 に答える