Android ViewFlipper 的使用
运行效果:
package com.iaiai;import android.app.Activity;import android.os.Bundle;import android.view.GestureDetector;import android.view.GestureDetector.SimpleOnGestureListener;import android.view.MotionEvent;import android.view.animation.Animation;import android.view.animation.AnimationUtils;import android.widget.ViewFlipper;/** * * <p> * Title: MainActivity.java * </p> * <p> * E-Mail: 176291935@qq.com * </p> * <p> * QQ: 176291935 * </p> * <p> * Http: iaiai.iteye.com * </p> * <p> * Create time: 2011-10-24 * </p> * * @author 丸子 * @version 0.0.1 */public class MainActivity extends Activity {private ViewFlipper viewFlipper;private GestureDetector gestureDetector;private Animation slideLeftIn; private Animation slideLeftOut; private Animation slideRightIn; private Animation slideRightOut;private class GestureDetectorListener extends SimpleOnGestureListener {private static final int SWIPE_MIN_DISTANCE = 120;private static final int SWIPE_MAX_OFF_PATH = 250;private static final int SWIPE_THRESHOLD_VELOCITY = 200;@Overridepublic boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {try {if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)return false;if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {viewFlipper.setInAnimation(slideLeftIn); viewFlipper.setOutAnimation(slideLeftOut);viewFlipper.showNext();} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {viewFlipper.setInAnimation(slideRightIn); viewFlipper.setOutAnimation(slideRightOut);viewFlipper.showPrevious();}} catch (Exception e) {// nothing}return false;}}@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in); slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out); slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in); slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper);gestureDetector = new GestureDetector(new GestureDetectorListener());}@Overridepublic boolean onTouchEvent(MotionEvent event) {return gestureDetector.onTouchEvent(event);}}