上下左右滑動

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent" >
    <!-- ViewFlipper  把你全部的xml都包起來,記住一個xml都是一個activity,切換的時候會有showNext()方法爲你切換下一個
    android:persistentDrawingCache="animation"表示緩存動畫,這樣不會一次次的加載了
    android:flipInterval="1000" 動畫切換的時間
    android:inAnimation="@anim/push_left_in"   切換後進入的動畫
     android:outAnimation="@anim/push_left_out"  切換後推出的動畫
     若是你用上下左右都切換的話,就不要再裏面實現了 ,直接在代碼中實現,若是這5個頁面有一個固定的text,那就不要包在裏面了
     -->
    <ViewFlipper 
        android:id="@+id/details"
        android:persistentDrawingCache="animation"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:flipInterval="1000"
        android:inAnimation="@anim/push_left_in"
        android:outAnimation="@anim/push_left_out"
        >
        <RelativeLayout 
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            >
            <Button 
                android:text="Next"
                android:id="@+id/button1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                />


            <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:layout_alignParentBottom="true"
                android:text="第一頁" />


        </RelativeLayout>
            <RelativeLayout 
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            >
            <Button 
                android:text="Next2"
                android:id="@+id/button2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                />
              <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:layout_alignParentBottom="true"
                android:text="第2頁" />
        </RelativeLayout>
            <RelativeLayout 
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            >
            <Button 
                android:text="Next3"
                android:id="@+id/button3"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                />
              <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_marginBottom="10dp"
                android:layout_alignParentBottom="true"
                android:text="第3頁" />
        </RelativeLayout>
        <include 
            layout="@layout/activity_main"
            />
    </ViewFlipper>


</LinearLayout>
android







package com.example.add_dongtai; 緩存

import android.app.Activity; import android.os.Bundle; import android.view.GestureDetector; import android.view.GestureDetector.OnDoubleTapListener; import android.view.GestureDetector.OnGestureListener; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; import android.widget.ViewFlipper; public class ImageActivity2 extends Activity implements OnGestureListener{ ViewFlipper mViewFlipper; private GestureDetector mGestureDetector; private long startTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); mViewFlipper = (ViewFlipper)findViewById(R.id.details);//找到那個ViewFlipper mGestureDetector = new GestureDetector(this);//建立一個手勢識別的工具 } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { long endTime = System.currentTimeMillis(); if(startTime!=0&&endTime-startTime<=1000){ return false; } // Toast.makeText(getApplicationContext(), ".點擊了", 0).show(); if(mViewFlipper.isFlipping()) {       Toast.makeText(getApplicationContext(), ".點擊了", 0).show();       }       if(e1.getY()>e2.getY()){//這是上下滑動,左右滑動也比較簡單,你在加一個else if(e1.getX()>e2.getX()).... //添加動畫就在這個地方添加,我裏面直接用了動畫,全部這個地方沒有實現動畫 //mViewFlipper.setInAnimation(getApplicationContext(), R.anim.push_left_out);             // mViewFlipper.setOutAnimation(getApplicationContext(), R.anim.push_left_in);  mViewFlipper.showNext();//下一頁 startTime = System.currentTimeMillis(); }else if(e1.getY()<e2.getY()){ mViewFlipper.showPrevious();//上一頁 startTime = System.currentTimeMillis(); }else{ return false;//不是你想要的結果就return false } return true; } @Override public boolean onDown(MotionEvent e) { return false; } @Override public void onLongPress(MotionEvent e) { } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { return false; } /** * 必須實現這個方法,否則滑動的效果是不會起做用的 */ public boolean onTouchEvent(MotionEvent event) {   if(mViewFlipper.isFlipping()){ Toast.makeText(getApplicationContext(), ".不執行", 0).show(); return false; }         return this.mGestureDetector.onTouchEvent(event);   } }
相關文章
相關標籤/搜索