Android里有兩個類
android.view.GestureDetector
java事件,android.view.GestureDetector.SimpleOnGestureListener (另外android.widget.Gallery好像是更牛x的OnGestureListener )
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時觸發。
android自定義控件、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這個順序觸發。 )
android中常用幾種布局,boolean onSingleTapConfirmed(MotionEvent e) boolean onSingleTapUp(MotionEvent e) 解釋:上面這兩個函數都是在touch down后又沒有滑動(onScroll),又沒有長按(onLongPress),然后Touchup時觸發。 點擊一下非常快的(不滑動)Touchup: onDown->onSingleTapUp->onSingleTapConfirme
點擊一下稍微慢點的(不滑動)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); }
但是,郁悶的是SimpleOnGestureListener沒有提供onUp(), 還得在View的 onTouchEvent的 case MotionEvent.ACTION_UP: 里來寫對應的代碼。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态