import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.GestureDetector.OnGestureListener;
import android.view.MotionEvent;
import android.view.View;
public class SjfdSetup2Activity extends Activity {
private GestureDetector mGestureDetector;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sjfd_setup2);
// 2. GestureDetector能够判断一个事件是什么样的动作(手势)
mGestureDetector = new GestureDetector(getApplicationContext(), new OnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onLongPress(MotionEvent e) {
// TODO Auto-generated method stub
}
// 4. 当GestureDetector判断出来某个动作的时候, 相应的回调方法就会被调用
// e1: 表示按下去的事件
// e2: 表示抬起来的事件
// velocityX: 这次快速滑动事件的横向速度
// velocityY: 这次快速滑动事件的纵向速度
// 返回值: 表示的是有没有处理完这个事件
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
System.out.println("快速滑动----------");
e1.getRawX(); // 获取当前这个事件距离屏幕左上角的横坐标
e1.getX(); // 获取当前这个事件距离控件左上角的横坐标
if(e2.getRawX() - e1.getRawX() > 100) {
// 表示向右滑, 切换到上一页
System.out.println("上一页----");
showPrePage();
}else if(e1.getRawX() - e2.getRawX() > 100) {
// 表示向左滑, 切换到下一页
System.out.println("下一页----");
showNextPage();
}
return true;
}
@Override
public boolean onDown(MotionEvent e) {
// TODO Auto-generated method stub
return false;
}
});
}
protected void showNextPage() {
startActivity(new Intent(this, SjfdSetup3Activity.class));
finish();
// 给Activity设置切换动画, 最好放在startActivity和finish之后
overridePendingTransition(R.anim.anim_next_enter, R.anim.anim_next_exit);
}
protected void showPrePage() {
startActivity(new Intent(this, SjfdSetup1Activity.class));
finish();
overridePendingTransition(R.anim.anim_pre_enter, R.anim.anim_pre_exit);
}
public void nextPage(View v) {
// startActivity(new Intent(this, SjfdSetup3Activity.class));
// finish();
// // 给Activity设置切换动画, 最好放在startActivity和finish之后
// overridePendingTransition(R.anim.anim_next_enter, R.anim.anim_next_exit);
showNextPage();
}
public void prePage(View v) {
// startActivity(new Intent(this, SjfdSetup1Activity.class));
// finish();
// overridePendingTransition(R.anim.anim_pre_enter, R.anim.anim_pre_exit);
showPrePage();
}
// 1. 当手指触摸到当前Activity的时候, 这个方法会被调用
// MotionEvent 封装了整个触摸事件的信息
@Override
public boolean onTouchEvent(MotionEvent event) {
// 3. 让GestureDetector判断当前触摸事件是一个什么样的动作(手势)
mGestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
}