<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); } }