首先你要定义好,你要切换的动画效果,例如平移
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false"> <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="5000" /> </set>
布局文件中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ViewFlipper android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/viewFilpper" > <!-- 第一页 --> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/firstpage" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/open" android:onClick="openActivity" /> </LinearLayout> <!-- 第二页 --> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#339900" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/secondpage" /> </LinearLayout> </ViewFlipper> </LinearLayout>
activity中
package cn.wonders.animation; import android.support.v7.app.ActionBarActivity; import android.view.MotionEvent; import android.view.View; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ViewFlipper; import android.content.Intent; import android.os.Bundle; public class MainActivity extends ActionBarActivity { private ViewFlipper viewFlipper; private float startX; private Animation enter_righttoleft; private Animation enter_lefttoright; private Animation out_lefttoright; private Animation out_righttoleft; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewFlipper = (ViewFlipper) findViewById(R.id.viewFilpper); //动画效果 enter_righttoleft = AnimationUtils.loadAnimation(this, R.anim.enter_righttoleft); enter_lefttoright = AnimationUtils.loadAnimation(this, R.anim.enter_lefttoright); out_lefttoright = AnimationUtils.loadAnimation(this, R.anim.out_lefttoright); out_righttoleft = AnimationUtils.loadAnimation(this, R.anim.out_righttoleft); } // 滑动转换 @Override public boolean onTouchEvent(MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_DOWN) { startX = event.getX(); }else if (event.getAction()==MotionEvent.ACTION_UP) { float endX = event.getX(); if(endX > startX) { viewFlipper.setInAnimation(out_righttoleft); viewFlipper.setOutAnimation(out_lefttoright); viewFlipper.showPrevious(); }else if(endX < startX){ viewFlipper.setInAnimation(enter_lefttoright); viewFlipper.setOutAnimation(enter_righttoleft); viewFlipper.showNext(); } } return super.onTouchEvent(event); } public void openActivity(View v) { Intent intent = new Intent(this, OtherActivity.class); startActivity(intent); //activity切换动画效果 overridePendingTransition(R.anim.enteralpha, R.anim.outalpha); } }
将可以实现,屏幕滑动切换动画效果