Android中的onTouch事件

來源:互聯網
上載者:User

Android裡有兩個類
android.view.GestureDetector
android.view.GestureDetector.SimpleOnGestureListener

1) 建立一個類繼承SimpleOnGestureListener,HahaGestureDetectorListener ,可以實現以下event事件。

boolean onDoubleTap(MotionEvent e)
解釋:雙擊的第二下Touch down時觸發

boolean onDoubleTapEvent(MotionEvent e)
解釋:雙擊的第二下Touch down和up都會觸發,可用e.getAction()區分。

boolean onDown(MotionEvent e)
解釋:Touch down時觸發

boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
解釋:Touch了滑動一點距離後,up時觸發。

void onLongPress(MotionEvent e)
解釋:Touch了不移動一直Touch down時觸發

boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
解釋:Touch了滑動時觸發。

void onShowPress(MotionEvent e)
解釋:Touch了還沒有滑動時觸發

與onDown,onLongPress比較 onDown只要Touch down一定立刻觸發。
而Touchdown後過一會沒有滑動先觸發onShowPress再是onLongPress。
所以Touchdown後一直不滑動,onDown->onShowPress->onLongPress這個順序觸發。

boolean onSingleTapConfirmed(MotionEvent e)
boolean onSingleTapUp(MotionEvent e)
解釋:上面這兩個函數都是在touch down後又沒有滑動(onScroll),又沒有長按(onLongPress),然後Touchup時觸發。

點擊一下非常快的(不滑動)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed

點擊一下稍微慢點的(不滑動)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed

2)在view的建立一個GestureDetector的對象。
建構函式裡
gestureDetector = new GestureDetector(new HahaGestureDetectorListener());

然後在View的onTouchEvent裡以下這樣用,就可以在剛才1)弄的事件裡寫自己的代碼了。
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.