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使用详解
时间: 2024-07-28 22:23:25