Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. public class ViewFlipperSampleActivity extends Activity {
  2.  
  3.     private static final int SWIPE_MIN_DISTANCE = 120;
  4.     private static final int SWIPE_THRESHOLD_VELOCITY = 200;
  5.     private ViewFlipper mViewFlipper;  
  6.     private Context mContext;
  7.  
  8.     private final GestureDetector detector = new GestureDetector(new SwipeGestureDetector());
  9.  
  10.     @Override
  11.     public void onCreate(Bundle savedInstanceState) {
  12.         super.onCreate(savedInstanceState);
  13.         setContentView(R.layout.main);
  14.         mContext = this;
  15.         mViewFlipper = (ViewFlipper) this.findViewById(R.id.view_flipper);
  16.         mViewFlipper.setOnTouchListener(new OnTouchListener() {
  17.             @Override
  18.             public boolean onTouch(final View view, final MotionEvent event) {
  19.                 detector.onTouchEvent(event);
  20.                 return true;
  21.             }
  22.         });
  23.     }
  24.  
  25.     class SwipeGestureDetector extends SimpleOnGestureListener {
  26.         @Override
  27.         public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
  28.             try {
  29.                 // right to left swipe
  30.                 if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
  31.                     mViewFlipper.setInAnimation(AnimationUtils.loadAnimation(mContext, R.anim.left_in));
  32.                     mViewFlipper.setOutAnimation(AnimationUtils.loadAnimation(mContext, R.anim.left_out));                 
  33.                     mViewFlipper.showNext();
  34.                     return true;
  35.                 } else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
  36.                     mViewFlipper.setInAnimation(AnimationUtils.loadAnimation(mContext, R.anim.right_in));
  37.                     mViewFlipper.setOutAnimation(AnimationUtils.loadAnimation(mContext,R.anim.right_out));
  38.                     mViewFlipper.showPrevious();
  39.                     return true;
  40.                 }
  41.  
  42.             } catch (Exception e) {
  43.                 e.printStackTrace();
  44.             }
  45.  
  46.             return false;
  47.         }
  48.     }
  49. }