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);
}
});