publicclassMainActivityextendsActivityimplementsOnTouchListener{
privateGestureDetector mGestureDetector;
@Override
protectedvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGestureDetector = newGestureDetector(newgestureListener());//使用派生自OnGestureListener
mGestureDetector.setOnDoubleTapListener(newdoubleTapListener());
TextView tv = (TextView)findViewById(R.id.tv);
tv.setOnTouchListener(this);
tv.setFocusable(true);
tv.setClickable(true);
tv.setLongClickable(true);
}
publicbooleanonTouch(View v, MotionEvent event) {
returnmGestureDetector.onTouchEvent(event);
}
//OnGestureListener监听
privateclassgestureListenerimplementsGestureDetector.OnGestureListener{
publicbooleanonDown(MotionEvent e) {
Log.i("MyGesture","onDown");
Toast.makeText(MainActivity.this,"onDown", Toast.LENGTH_SHORT).show();
returnfalse;
}
publicvoidonShowPress(MotionEvent e) {
Log.i("MyGesture","onShowPress");
Toast.makeText(MainActivity.this,"onShowPress", Toast.LENGTH_SHORT).show();
}
publicbooleanonSingleTapUp(MotionEvent e) {
Log.i("MyGesture","onSingleTapUp");
Toast.makeText(MainActivity.this,"onSingleTapUp", Toast.LENGTH_SHORT).show();
returntrue;
}
publicbooleanonScroll(MotionEvent e1, MotionEvent e2,
floatdistanceX,floatdistanceY) {
Log.i("MyGesture22","onScroll:"+(e2.getX()-e1.getX()) +" "+distanceX);
Toast.makeText(MainActivity.this,"onScroll", Toast.LENGTH_LONG).show();
returntrue;
}
publicvoidonLongPress(MotionEvent e) {
Log.i("MyGesture","onLongPress");
Toast.makeText(MainActivity.this,"onLongPress", Toast.LENGTH_LONG).show();
}
publicbooleanonFling(MotionEvent e1, MotionEvent e2,floatvelocityX,
floatvelocityY) {
Log.i("MyGesture","onFling");
Toast.makeText(MainActivity.this,"onFling", Toast.LENGTH_LONG).show();
returntrue;
}
};
//OnDoubleTapListener监听
privateclassdoubleTapListenerimplementsGestureDetector.OnDoubleTapListener{
publicbooleanonSingleTapConfirmed(MotionEvent e) {
Log.i("MyGesture","onSingleTapConfirmed");
Toast.makeText(MainActivity.this,"onSingleTapConfirmed", Toast.LENGTH_LONG).show();
returntrue;
}
publicbooleanonDoubleTap(MotionEvent e) {
Log.i("MyGesture","onDoubleTap");
Toast.makeText(MainActivity.this,"onDoubleTap", Toast.LENGTH_LONG).show();
returntrue;
}
publicbooleanonDoubleTapEvent(MotionEvent e) {
Log.i("MyGesture","onDoubleTapEvent");
Toast.makeText(MainActivity.this,"onDoubleTapEvent", Toast.LENGTH_LONG).show();
returntrue;
}
};
}