识别上下左右滑动就要使用GestureDetector
1.声明GestureDetector.对象
2.实现手势识别方法onFling
3.在onTouchEvent中为GestureDetector传入事件
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;
import com.itheima.mobilesafe.R;
public abstract class BaseSetupActivity extends Activity {
//声明手势识别对象
private GestureDetector gestureDetector;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//实现手势识别方法
gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener(){
/*
* e1 手机触摸时按下的事件,从它里面获得事件所有的信息
* e2 手机触摸时抬起的事件,从它里面获得事件所有的信息
* velocityX 在水平方向移动的速度(每秒多个像素)
* velocityY 在水平方向移动的速度(每秒多个像素)
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
int startX = (int) e1.getRawX();
int endX = (int) e2.getRawX();
if(Math.abs(velocityX) < 10){
Toast.makeText(BaseSetupActivity.this, "哥,滑动的快动快一点嘛", 0).show();
return true;
}
if((endX - startX) >= 200){
//显示前一个界面
pre(null);
return true;
}
if((startX - endX) >= 200){
//显示后一个界面
next(null);
return true;
}
return super.onFling(e1, e2, velocityX, velocityY);
}
});
}
/**
* 触摸事件
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
//触摸事件传入手势识别器
gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
/**
* 留给子类来实现
* @param view
*/
public abstract void next(View view);
/**
* 留给子类来实现
* @param view
*/
public abstract void pre(View view);
}