2016-11-26 397 views
2

我是Android新手,最近學習了手勢!onDoubleTap監聽器和onDoubleTapEvent監聽器之間的區別是什麼

這兩種方法有什麼區別?

@Override 
public boolean onDoubleTap(MotionEvent e) { 
    return false; 
} 

而這一次

@Override 
public boolean onDoubleTapEvent(MotionEvent e) { 
    return false; 
} 

他們似乎做同樣的事情。哪一個你用的,有什麼區別

+0

我編輯了一個清晰的思路,答案:)希望我會幫你的 –

回答

2

簡單的答案是

boolean onDoubleTap (MotionEvent e) - 

雙擊發生通知。

當雙擊發生 和param motionEvent是:l,下來第一次輕觸的運動事件時,可以通知作業人員。

boolean onDoubleTapEvent (MotionEvent e)` - 

雙擊手勢內的事件發生

您可以在雙擊手勢發生內通知作業人員的事件,包括已通知downmoveup事件和和param motionEvent是爲運動事件

所以用doubleTapEvent你可以得到額外的選項卡手勢以及水龍頭

看看 - >https://stackoverflow.com/a/19629851/5188159這種力量有助於您的觸摸手勢

進一步嘗試瞭解這裏發生了什麼這個例子

//initialize the Gesture Detector 
     gd = new GestureDetector(this); 

     //set the on Double tap listener 
     gd.setOnDoubleTapListener(new OnDoubleTapListener() 
     { 
      @Override 
      public boolean onDoubleTap(MotionEvent e) 
      { 
       //set text color to green 
       tvTap.setTextColor(0xff00ff00); 
       //print a confirmation message 
       tvTap.setText("The screen has been double tapped."); 
       return false; 
      } 

      @Override 
      public boolean onDoubleTapEvent(MotionEvent e) 
      { 
       //if the second tap hadn't been released and it's being moved 
       if(e.getAction() == MotionEvent.ACTION_MOVE) 
       { 
        //set text to blue 
        tvTapEvent.setTextColor(0xff0000ff); 
        //print a confirmation message and the position 
        tvTapEvent.setText("Double tap with movement. Position:\n" 
          + "X:" + Float.toString(e.getRawX()) + 
          "\nY: " + Float.toString(e.getRawY())); 
       } 
       else if(e.getAction() == MotionEvent.ACTION_UP)//user released the screen 
       { 
        tvTapEvent.setText(""); 
       } 
       return false; 
      } 

      @Override 
      public boolean onSingleTapConfirmed(MotionEvent e) 
      { 
       //set text color to red 
       tvTap.setTextColor(0xffff0000); 
       //print a confirmation message and the tap position 
       tvTap.setText("Double tap failed. Please try again."); 
       return false; 
      } 
     });