OnGestureListener can handle some simple touch gestures, such as sliding and long-pressing. OnGestureListener cannot directly set listening. OnTouchListener can be set, point it to OnGestureListener [java] public class GestureView extends View implements OnTouchListener, OnGestureListener {GestureDetector mGestureDetector; public GestureView (Context context) {super (context); this. setOnTouchListener (this); mGestureDetector = new GestureDetector (this) ;}@ Override public boolean onDown (MotionEvent e) {Log. I ("@ fred", "touch gesture: onDown"); return true ;}@ Override public boolean onFling (MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {if (e2.getX ()-e1.getX ()> 50) {Log. I ("@ fred", "touch gesture: onFling");} return true ;}@ Override public void onLongPress (MotionEvent e) {Log. I ("@ fred", "touch gesture: onLongPress") ;}@ Override public boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {Log. I ("@ fred", "touch gesture: onScroll"); return true ;}@ Override public void onShowPress (MotionEvent e) {Log. I ("@ fred", "touch gesture: onShowPress") ;}@ Override public boolean onSingleTapUp (MotionEvent e) {Log. I ("@ fred", "touch gesture: onSingleTapUp"); return true ;}@ Override public boolean onTouch (View v, MotionEvent event) {// upload the MotionEvent event to GestureDetector return mGestureDetector. onTouchEvent (event) ;}} public class GestureView extends View implements OnTouchListener, OnGestureListener {GestureDetector mGestureDetector; public GestureView (Context context) {super (context); this. setOnTouchListener (this); mGestureDetector = new GestureDetector (this) ;}@ Overridepublic boolean onDown (MotionEvent e) {Log. I ("@ fred", "touch gesture: onDown"); return true ;}@ Overridepublic boolean onFling (MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {if (e2.getX ()-e1.getX ()> 50) {Log. I ("@ fred", "touch gesture: onFling");} return true ;}@ Overridepublic void onLongPress (MotionEvent e) {Log. I ("@ fred", "touch gesture: onLongPress") ;}@ Overridepublic boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {Log. I ("@ fred", "touch gesture: onScroll"); return true ;}@ Overridepublic void onShowPress (MotionEvent e) {Log. I ("@ fred", "touch gesture: onShowPress") ;}@ Overridepublic boolean onSingleTapUp (MotionEvent e) {Log. I ("@ fred", "touch gesture: onSingleTapUp"); return true ;}@ Overridepublic boolean onTouch (View v, MotionEvent event) {// upload the MotionEvent event to GestureDetectorreturn mGestureDetector. onTouchEvent (event) ;}}for example, click the screen: