在视图中,我想检测单击和双击。它适用于我。我可以检测到单击和双击。请找我的代码
@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中完成这项工作?
由于
答案 0 :(得分:0)
根据手势监听器documentation,您需要为onSingleTapConfirmed
& onDoubleTap
。否则,事件不会被消耗,gestureDetector.onTouchEvent(me);
将返回false。