2

onTouchEventを使用して、誰かがディスプレイ上で指をどれだけドラッグしたかを測定することは可能ですか?任意のアイデアをいただければ幸いです。

4

1 に答える 1

9

を使用ACTION_DOWNACTION_UPて、指が触れた始点と終点を保存し、ドラッグした距離を計算できます。

例えば:

Point p1;
Point p2;

View view = new View(this);

view.setOnTouchListener(new View.OnTouchListener() {
       public boolean onTouch(View v, MotionEvent event) {
         if(event.getAction() == MotionEvent.ACTION_DOWN)
            p1 = new Point((int) event.getX(), (int) event.getY());
         else if(event.getAction() == MotionEvent.ACTION_UP)
            p2 = new Point((int) event.getX(), (int) event.getY());

         return false;
      }
});

距離はに等しくなりMath.sqrt(Math.pow(p1.x-p2.x, 2) + Math.pow(p1.y-p2.y, 2))ます。また、いつでもドラッグした距離を計算したい場合は、2番目の位置を保存できますif(event.getAction() == MotionEvent.ACTION_MOVE)

于 2012-07-23T01:13:10.267 に答える