本文实例为大家分享了Android实现页面滑动切换动画的具体代码,供大家参考,具体内容如下
实现两个页面滑动切换,一些相册的效果也是如此
一个Activity的界面配置文件
activity_main.xml:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/viewFlipper"
>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#339900"
>
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="第一页"
/>
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="第二页"
/>
MainActivity.java:
package com.example.activitymove;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ViewFlipper;
public class MainActivity extends Activity {
private ViewFlipper viewFlipper;
private float startX;
private float endX;
private Animation in_lefttoright;
private Animation out_lefttoright;
private Animation in_righttoleft;
private Animation out_righttoleft;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
in_lefttoright=AnimationUtils.loadAnimation(this, R.anim.enter_lefttoright);
out_lefttoright=AnimationUtils.loadAnimation(this, R.anim.out_lefttoright);
in_righttoleft=AnimationUtils.loadAnimation(this, R.anim.enter_righttoleft);
out_righttoleft=AnimationUtils.loadAnimation(this, R.anim.out_righttoleft);
viewFlipper=(ViewFlipper) this.findViewById(R.id.viewFlipper);
}
//处理触屏时间的方法
//手在屏幕上向右滑动然后松开翻下一页,向左翻显示前一页
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN){
//记录手放在屏幕上的点位置
startX=event.getX();
}else if(event.getAction()==MotionEvent.ACTION_UP){
//记录手离开屏幕上的点位置
endX=event.getX();
if(endX>startX){
viewFlipper.setInAnimation(in_lefttoright);
viewFlipper.setOutAnimation(out_lefttoright);
viewFlipper.showNext();//显示下一页
}else if(endX
viewFlipper.setInAnimation(in_righttoleft);
viewFlipper.setOutAnimation(out_righttoleft);
viewFlipper.showPrevious();//显示前一页
}
return true;
}
return super.onTouchEvent(event);
}
}
在res/anim/文件夹下有
enter_lefttoright.xml和enter_righttoleft.xml
out_lefttoright.xml和out_righttoleft.xml
四个动画配置文件:
enter_lefttoright.xml:
android:shareInterpolator="false">
android:fromXDelta="-100%p"
android:toXDelta="0"
android:duration="1000"
/>
enter_righttoleft.xml:
android:shareInterpolator="false">
android:fromXDelta="100%p"
android:toXDelta="0"
android:duration="1000"
/>
out_lefttoright.xml:
android:shareInterpolator="false">
android:fromXDelta="0"
android:toXDelta="100%p"
android:duration="1000"
/>
out_righttoleft.xml:
android:shareInterpolator="false">
android:fromXDelta="0"
android:toXDelta="-100%p"
android:duration="1000"
/>
效果:用手向右滑动,整个页面向右慢慢滑动,切换页面,用手向左滑动,整个页面向左慢慢滑动,切换页面。
(将配置文件换成其他的动画效果也可以,本例子使用的是移入移出的动画效果)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。