80,351
社区成员
发帖
与我相关
我的任务
分享
/**
* 初始化手势识别器
*/
public void initGesture()
{
gd=new GestureDetector(new GestureDetector.OnGestureListener() {
//覆盖此方法,实现手指滑动切换界面效果
/**
*
* @param e1 按下的点的位置
* @param e2 松开的点的位置
* @param velocityX X轴方向的速度
* @param velocityY Y轴方向的速度
* @return
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
//判断X轴方向的速度是否满足横向滑动的条件
if(velocityX>100)//速度大于200像素每秒,则可以滑动
{
float dx=e2.getX()-e1.getX();//横向滑动的距离
if(Math.abs(dx)<100)//滑动距离小于200像素,则滑动无效
{ //Math.abs(dx)表示对dx取绝对值
return true;
}
if(dx<0)//向右滑动
{
//调用next方法
next(null);//因为不是组件调用的该方法,所以传个null即可
}
else{//向左滑动
//调用prev方法
prev(null);//因为不是组件调用的该方法,所以传个null即可
}
}
return true;
}
@Override
public boolean onDown(MotionEvent e) {
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) {
}
});
}
/**
* 给手势识别器绑定onTouch事件
*/
@Override
public boolean onTouchEvent(MotionEvent event) {
return gd.onTouchEvent(event);
}