您的位置:首页 > 移动开发 > 微信开发

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

2015-08-26 00:55 671 查看
listView.setSelection(0);

public class MainActivity extends Activity implements OnTouchListener{

private GestureDetector mGestureDetector;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mGestureDetector = new GestureDetector(new gestureListener()); //使用派生自OnGestureListener

mGestureDetector.setOnDoubleTapListener(new doubleTapListener());

TextView tv = (TextView)findViewById(R.id.tv);

tv.setOnTouchListener(this);

tv.setFocusable(true);

tv.setClickable(true);

tv.setLongClickable(true);

}

/*

* 在onTouch()方法中,我们调用GestureDetector的onTouchEvent()方法,将捕捉到的MotionEvent交给GestureDetector

* 来分析是否有合适的callback函数来处理用户的手势

*/

public boolean onTouch(View v, MotionEvent event) {

return mGestureDetector.onTouchEvent(event);

}

//OnGestureListener监听

private class gestureListener implements GestureDetector.OnGestureListener{

public boolean onDown(MotionEvent e) {

Log.i("MyGesture", "onDown");

Toast.makeText(MainActivity.this, "onDown", Toast.LENGTH_SHORT).show();

return false;

}

public void onShowPress(MotionEvent e) {

Log.i("MyGesture", "onShowPress");

Toast.makeText(MainActivity.this, "onShowPress", Toast.LENGTH_SHORT).show();

}

public boolean onSingleTapUp(MotionEvent e) {

Log.i("MyGesture", "onSingleTapUp");

Toast.makeText(MainActivity.this, "onSingleTapUp", Toast.LENGTH_SHORT).show();

return true;

}

public boolean onScroll(MotionEvent e1, MotionEvent e2,

float distanceX, float distanceY) {

Log.i("MyGesture22", "onScroll:"+(e2.getX()-e1.getX()) +" "+distanceX);

Toast.makeText(MainActivity.this, "onScroll", Toast.LENGTH_LONG).show();

return true;

}

public void onLongPress(MotionEvent e) {

Log.i("MyGesture", "onLongPress");

Toast.makeText(MainActivity.this, "onLongPress", Toast.LENGTH_LONG).show();

}

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,

float velocityY) {

Log.i("MyGesture", "onFling");

Toast.makeText(MainActivity.this, "onFling", Toast.LENGTH_LONG).show();

return true;

}

};

//OnDoubleTapListener监听

private class doubleTapListener implements GestureDetector.OnDoubleTapListener{

public boolean onSingleTapConfirmed(MotionEvent e) {

Log.i("MyGesture", "onSingleTapConfirmed");

Toast.makeText(MainActivity.this, "onSingleTapConfirmed", Toast.LENGTH_LONG).show();

return true;

}

public boolean onDoubleTap(MotionEvent e) {

Log.i("MyGesture", "onDoubleTap");

Toast.makeText(MainActivity.this, "onDoubleTap", Toast.LENGTH_LONG).show();

return true;

}

public boolean onDoubleTapEvent(MotionEvent e) {

Log.i("MyGesture", "onDoubleTapEvent");

Toast.makeText(MainActivity.this, "onDoubleTapEvent", Toast.LENGTH_LONG).show();

return true;

}

};

}

参考:

用户手势检测-GestureDetector使用详解

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  GestureDetector.OnDo