版权声明:欢迎大家留言讨论 https://blog.csdn.net/u014733374/article/details/47946609
设置单个页面跳转的动画可以在页面跳转的时候加入overridePendingTransition()方法即可实现页面跳转的动画效果,但如果我们想设置App的整体页面跳转效果 ,肯定不想在每次跳转的时候都去执行该方法。下面介绍通过设置style设置Activity的页面跳转动画。
关键点:
1. 4个动画效果
2. 设置style属性
跳转的效果:
具体实现:
定义activity的四个属性动画,分别是”android:activityOpenEnterAnimation”,”android:activityOpenExitAnimation”,”android:activityCloseEnterAnimation”,”android:activityCloseExitAnimation”
<!--activity-->
<style name="AnimationActivity" parent="@android:style/Animation.Activity" mce_bogus="1">
<!--进入一个Acitvity包括两部分,当前Activity退出动画,下个个Activity进入动画-->
<item name="android:activityOpenEnterAnimation">@anim/right_in</item> //下个Activty进入动画
<item name="android:activityOpenExitAnimation">@anim/left_out</item> //当前Activity退出的动画
<!--跳回一个Activity也包括两部分,当前Activity摧毁动画,上个Actiivty进入动画-->
<item name="android:activityCloseEnterAnimation">@anim/in</item> //上个Activity进入动画
<item name="android:activityCloseExitAnimation">@anim/out</item> //当前Activity退出动画
</style>
然后将上面定义的style设置给App的主Theme的”android:windowAnimationStyle”属性即可
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">#009688</item>
<item name="android:windowAnimationStyle">@style/AnimationActivity</item>
</style>
下面给出四个动画,很简单,进入的时候:右进左出;退出时,左进由出
right_in.xml 其实这里可以设置组合动画,注释掉的代码是因为我实现的组合效果着实太差
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="800"
android:toXDelta="0"
android:duration="500" />
<!-- <alpha android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="800"/>-->
<!--<scale
android:fromXScale="0.2"
android:toXScale="1.0"
android:fromYScale="0.2"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="500"
android:interpolator="@android:anim/accelerate_interpolator"/>-->
</set>
left_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0"
android:toXDelta="-400"
android:duration="500" />
<!-- <alpha android:fromAlpha="1.0"
android:toAlpha="0.5"
android:duration="500"/>-->
<!--<scale
android:fromXScale="1.0"
android:toXScale="0.2"
android:fromYScale="1.0"
android:toYScale="0.2"
android:pivotX="50%"
android:pivotY="50%"
android:duration="500"
android:interpolator="@android:anim/accelerate_interpolator"/>-->
</set>
in.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="-400"
android:toXDelta="0"
android:duration="500"/>
<!-- <alpha android:fromAlpha="0.50"
android:toAlpha="1.0"
android:duration="500"/>-->
<!--<scale
android:fromXScale="0.2"
android:toXScale="1.0"
android:fromYScale="0.2"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="500"
android:interpolator="@android:anim/accelerate_interpolator"/>-->
</set>
out.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromXDelta="0"
android:toXDelta="800"
android:duration="500" />
<!-- <alpha android:fromAlpha="1.0"
android:toAlpha="0.5"
android:duration="500"/>-->
<!--<scale
android:fromXScale="1.0"
android:toXScale="0.2"
android:fromYScale="1.0"
android:toYScale="0.2"
android:pivotX="50%"
android:pivotY="50%"
android:duration="500"
android:interpolator="@android:anim/accelerate_interpolator"/>-->
</set>