屏幕左边代表-100%p,右边代表100%p
在res文件夹下新建anim文件,在anim文件夹下书写动画
<!--anim_left_in-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="-100%p"
android:toXDelta="0"
android:fromYDelta="0"
android:toYDelta="0">
</translate>
<!--anim_left_out-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="0"
android:toXDelta="-100%p"
android:fromYDelta="0"
android:toYDelta="0">
</translate>
<!--anim_right_in-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="100%p"
android:toXDelta="0"
android:fromYDelta="0"
android:toYDelta="0">
</translate>
<!--anim_right_out-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="0"
android:toXDelta="100%p"
android:fromYDelta="0"
android:toYDelta="0">
</translate>
在startActivity后使用overridePendingTransition()函数,第一个参数代表打开activity时进来的activity的动画,第二个参数代表当前activity离开时的动画
//第一个activity
startActivity(new Intent(getActivity(), SettingActivity.class));
getActivity().overridePendingTransition(R.anim.anim_right_in,R.anim.anim_left_out);
//第二个activity
finish();
overridePendingTransition(R.anim.anim_left_in,R.anim.anim_right_out);
也可以不使用代码方式,使用配置样式文件
<style name="anim_apptheme" parent="@android:style/Animation.Activity">
<!--activityA进入ActivityB,android:activityOpenEnterAnimation代表打开B时进入者(B)的动画,android:activityOpenExitAnimation代表
进入B时A离开的动画,name="android:activityCloseExitAnimation代表由B返回A(关闭B)时离开者(B)的动画,android:activityCloseEnterAnimation
代表由B返回A(关闭B)时进入者(A的动画)-->
<item name="android:activityCloseExitAnimation">@anim/anim_right_out</item>
<item name="android:activityOpenEnterAnimation">@anim/anim_left_in</item>
<item name="android:activityCloseEnterAnimation">@anim/anim_right_in</item>
<item name="android:activityOpenExitAnimation">@anim/anim_left_out</item>
</style>
<!--<item name="android:windowEnableSplitTouch">false</item>
<item name="android:splitMotionEvents">false</item>禁用多点触摸-->
<style name="NormalTheme" parent="android:Theme.Holo.Light.NoActionBar">
<item name="android:windowAnimationStyle">@style/anim_apptheme</item>
<item name="android:windowEnableSplitTouch">false</item>
<item name="android:splitMotionEvents">false</item>
</style>
然后在想使用动画的activity中的theme声明此样式