既存のAPIを使用してAndroidでタッチイベントの速度、速度、または加速度を取得することは可能ですか?MotionEventクラスを実行しましたが、そのクラスのどのフィールドも必要な情報を取得していないようです。どんな助けでも大歓迎です
質問する
7022 次
2 に答える
14
この場合、MotionEvent は役に立ちません。VelocityTracker クラスを使用できます。MotionEvent インスタンスを取得し、最近のタッチ イベントの速度を計算します。ここでそのドキュメントを見ることができます: http://developer.android.com/reference/android/view/VelocityTracker.html
まず、get() メソッドでインスタンスを取得する必要があります。
VelocityTracker velocity = VelocityTracker.obtain();
次に、 ACTION_MOVE イベントをそのキューに追加できます。
if(event.getAction() == MotionEvent.ACTION_MOVE)
{
velocity.addMovement(event);
}
次に、速度を計算し、x_velocity と y_velocity を抽出できます
velocity.computeCurrentVelocity(1000);
float x_velocity = velocity.getXVelocity();
float y_velocity = velocity.getYVelocity();
うまくいくことを願っています。
于 2012-11-06T16:25:59.900 に答える
0
を使用して、2 つのイベント間の速度を手動で計算する必要がありますSystem.nanoTime
。加速度についても同じ方法です (ただし、今回は座標の代わりに速度を使用します)。
于 2012-04-14T19:59:09.603 に答える