天天看点

android双击回到顶部,仿微信朋友圈双击顶部回到最前端(GestureDetector.OnDoubleTapListener)...

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;

}

};

}