主要代码:
/**
* 用户按下触摸屏、快速移动后松开即触发这个事件 e1:第1个ACTION_DOWN MotionEvent e2:最后一个ACTION_MOVE
* MotionEvent: velocityX:X轴上的移动速度,像素/秒 velocityY:Y轴上的移动速度,像素/秒 触发条件 :
* X轴的坐标位移大于FLING_MIN_DISTANCE,且移动速度大于FLING_MIN_VELOCITY个像素/秒
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE) {
if (currentIndex < IMAGES.length - 1) {
currentIndex++;
View view = new View(Test.this);
view.setBackgroundResource(IMAGES[currentIndex]);
viewFlipper.addView(view);
viewFlipper.setInAnimation(AnimationUtils
.loadAnimation(Test.this, R.anim.push_left_in));
viewFlipper
.setOutAnimation(AnimationUtils.loadAnimation(
Test.this, R.anim.push_left_out));
viewFlipper.showNext();
}
generatePageControl();
return true;
} else if (e1.getX() - e2.getX() < -FLING_MIN_DISTANCE) {
if (currentIndex > 0) {
currentIndex--;
viewFlipper
.setInAnimation(AnimationUtils.loadAnimation(
Test.this, R.anim.push_right_in));
viewFlipper
.setOutAnimation(AnimationUtils.loadAnimation(
Test.this, R.anim.push_right_out));
viewFlipper.showPrevious();
}
generatePageControl();
return true;
}
return false;
}