0
画面上のタッチ位置のデルタを計算します。そのために、私はこのコードを使用しています:Android:タッチ位置のデルタを計算する最も簡単な方法は?
public boolean onTouchEvent(MotionEvent event) {
touchX = (int) event.getX();
touchY = (int) event.getY();
deltaX = touchX - oldX;
deltaY = touchY - oldY;
oldX = touchX;
oldY = touchY;
return super.onTouchEvent(event);
}
私はしばらくの間、画面上で指を動かすと、私は正しいデルタを取得します。しかし、問題は私が指を止めるときに起こりますが、持ち上げないでください。その時、私はちょうど最後のフレームの非ゼロデルタを取得します。これは、指が画面上で静的であるときはonTouchEvent
が呼び出されないためです。私は指が静的であるときゼロデルタを得るべきです。
この問題の解決方法を教えてください。
「mHandler.removeCallbacksAndMessages(null);」という行を除いて同じメソッドを使用していました。しかし、それは一種の遅れていました。あなたのソリューションを使用すると、遅れがなくなりました。このラインは何をしていますか? –
この行は、すべての保留中のタスクを削除します。新しいタッチイベントが発生した場合、以前のすべての待機は意味をなさないので必要です。 –