009、使用ViewFlipper实现左右滑动事件

ViewFlipper控件是系统自带控件,可以直接在布局文件里面添加,需要滑动的内容写在ViewFlipper里面,如下:
    <ViewFlipper
        android:id="@+id/vf"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
 
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/visa"
                android:textColor="@drawable/blue" />
 
            <ImageView
                android:id="@+id/iv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@drawable/visa_512" />
        </LinearLayout>
 
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
 
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/mastercard"
                android:textColor="@drawable/blue" />
 
            <ImageView
                android:id="@+id/iv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:background="@drawable/mastercard_512" />
        </LinearLayout>
    </ViewFlipper>
 
 
在代码里面,通过showNext()方法和showPrevious()方法来实现显示下一个或上一个layout布局
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            oldTouchValue = event.getX();
            break;
        case MotionEvent.ACTION_UP:
            if (oldTouchValue < event.getX()) {
                //向左滑
                vf.setInAnimation(AnimationHelper.inFromLeftAnimation());
                vf.setOutAnimation(AnimationHelper.outToRightAnimation());
                vf.showNext();
            } else if (oldTouchValue > event.getX()) {
                //向右滑
                vf.setInAnimation(AnimationHelper.inFromRightAnimation());
                vf.setOutAnimation(AnimationHelper.outToLeftAnimation());
                vf.showPrevious();
            }
            break;
        }
        return super.onTouchEvent(event);
    } 
  
原文地址:https://www.cnblogs.com/zyh-blog/p/3324501.html