class MyGestureListener implements GestureDetector.OnGestureListener { @Override public boolean onDown(MotionEvent e) { /** *如果手势监听不起作用,这里要定义为true */ return true; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; } @Override public void onLongPress(MotionEvent e) { } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if (e2.getX() -e1.getX() >verticalMinDistance) { Log.d("jxd", "向右手势"); if(curPos > 0) { curPos--; Glide.with(GalleryActivity.this).load(imgs[curPos]).into(curImgView); } else { Toast.makeText(GalleryActivity.this,"已经是第一张图片了",Toast.LENGTH_SHORT).show(); } } else if (e1.getX() -e2.getX() > verticalMinDistance){ Log.d("jxd", "向左手势"); if(curPos < imgs.length-1) { curPos++; Glide.with(GalleryActivity.this).load(imgs[curPos]).into(curImgView); } else { Toast.makeText(GalleryActivity.this,"已经是最后一张图片了",Toast.LENGTH_SHORT).show(); } } // else if (distanceY <- verticalMinDistance) { // Log.d("jxd", "向下手势"); // // // } else if (distanceY > verticalMinDistance ) { // // Log.d("jxd", "向上手势"); // // } return false; } }
使用方式:
mGestureDetector = new GestureDetector(GalleryActivity.this,new MyGestureListener()); curImgView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Log.d("jxd", "onTouch"); return mGestureDetector.onTouchEvent(event); } });