0

在一个视图中,我想同时检测单击和双击。它对我很好。我可以检测到单击和双击。请找到我的代码

@Override
    public boolean onTouch(View view, MotionEvent me) {
        // No dragging during animation at the moment.
        // TODO: Stop animation on touch event and return to drag mode.
        boolean result = true;
        result = gestureDetector.onTouchEvent(me);//return the double tap events
        if(result)
            return false;

switch (me.getAction()) {
        case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_CANCEL:
        case MotionEvent.ACTION_UP:
}


private class GestureListener extends GestureDetector.SimpleOnGestureListener {

        private String fileName;



        @Override
         public boolean onSingleTapConfirmed(MotionEvent e) {
          // TODO Auto-generated method stub

          return false;
         }

        // event when double tap occurs
        @Override
        public boolean onDoubleTap(MotionEvent e) {

            float x = e.getX();
                float y = e.getY();
                if(player!=null && player.isPlaying())
                {
                    player.stop();
                }
                else
                {
                    setFileName(x);
                    player = new AudioPlayer(fileName);
                    player.play();
                }


            return true;
        }


    }

我在 Action_UP 事件中做一些代码。因此,即使我双击,对于第一次点击,ACTION_UP 事件也会被调用并执行相应的代码。我想防止这种情况发生。我怎样才能做到这一点。我只想确保仅在用户完成手势后才调用 ACTION_UP。不是他的局部手势之后。在这种情况下,它在第一次点击时被调用。

我怎样才能使它在android中工作?

谢谢

4

1 回答 1

0

根据手势侦听器文档,您需要为onSingleTapConfirmed&返回 true onDoubleTap。否则事件不会被消费并gestureDetector.onTouchEvent(me);返回 false。

于 2013-08-29T08:00:40.017 回答