| 一般地,View是在onTouchEvent(MotionEvent event)里對用戶的動作做了一定的分析,從而通知我們是發(fā)生了點(diǎn)擊還是長按等事件。 當(dāng)我們需要對用戶手勢進(jìn)行識別時,需要創(chuàng)建一個GestureDetector的對象,并為其創(chuàng)建listener對象,view 接收到的onTouchEvent事件時,將event傳給GestureDetector進(jìn)行分析,針對不同的手勢動作(雙擊,長按,滑行等)觸發(fā)不同的函數(shù)進(jìn)行處理,處理事件定義在 listener 當(dāng)中。 一般程序框架如下: private GestureDetector mGestureDetector; @Override public void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   mGestureDetector = new GestureDetector(this, new MyGestureListener()); } @Override public boolean onTouchEvent(MotionEvent event) { return mGestureDetector.onTouchEvent(event); 
 } class MyGestureListener extends GestureDetector.SimpleOnGestureListener{   @Override   public boolean onSingleTapUp(MotionEvent ev) {     Log.d("onSingleTapUp",ev.toString());     return true;   }   @Override   public void onShowPress(MotionEvent ev) {     Log.d("onShowPress",ev.toString());   }   @Override   public void onLongPress(MotionEvent ev) {     Log.d("onLongPress",ev.toString());   } … } | 
|  |