设置整体App页面跳转的动画效果

版权声明:欢迎大家留言讨论 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>

猜你喜欢

转载自blog.csdn.net/u014733374/article/details/47946609