【问题标题】:How to detect android double tap? [duplicate]如何检测android双击? [复制]
【发布时间】:2014-01-06 02:26:17
【问题描述】:

如何检测android中的双击?我实现了 OnDoubleTapListener 并写了这个:

public boolean onDoubleTapEvent(MotionEvent e) {
        // TODO Auto-generated method stub
        if(e.getAction() == 1){
            Toast.makeText(getApplicationContext(),"Double Tap", Toast.LENGTH_SHORT).show();
        }
        return true;
    }

但它不起作用。这有什么问题?

【问题讨论】:

  • 尝试删除 if 块,并在收到事件时做一个 Toast。这会让我们知道监听器是否正确连接。
  • 我删除了 if 块并再次测试。我还是看不到双击的 Toast 消息。
  • @Emmanuel :是的,谢谢,我看到了给定的帖子,但我不理解给定的代码作为答案。他为此创建了新课程。我需要的是在我的活动中做到这一点。我在android方面没有太多经验,如果这很愚蠢,我很抱歉。

标签: android double-click tap


【解决方案1】:
public class GestureDoubleTap extends GestureDetector.SimpleOnGestureListener {

    @Override
    public boolean onDoubleTap(MotionEvent e) {
        //some logic
        return true;
    }

}

GestureDoubleTap gestureDoubleTap = new GestureDoubleTap();
gestureDetector = new GestureDetector(this/* context */, gestureDoubleTap);

view.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        return gestureDetector.onTouchEvent(motionEvent);
    }

});

【讨论】:

  • 谢谢,但是有没有办法在 Activity 中做到这一点,而无需创建单独的类作为 GestureDoubleTap ?
  • 匿名类而不是单独的类作为 GestureDoubleTap,否则,对不起,我不知道。
  • 这里还有一个问题如何识别特定图标?使用 MotionEvent 我们可以获得 X 和 Y 坐标,但使用它如何获得具有双击的精确图标?
  • 第一,一个图标,一个视图。第二,如果一个视图有多个图标。你必须知道每个图标的大小。或者,左点。所以,在onDoubleTap()中,你只需一些逻辑来计算 x 和 y 在哪个图标中。
猜你喜欢
  • 2011-01-14
  • 2015-11-09
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 1970-01-01
相关资源
最近更新 更多