Android Activity 平滑水平切换动画

在Android当中 设置activity的动画 需要复写 android:windowAnimationStyle这个属性

我们自定义一个动画样式来继承@android:style/Animation(Base style for animations.  This style specifies no animations)这个样式是Android操作系统提供的 没用动画的样式 我们定义其中的4个属性还设置我们想要的效果

 

android:activityOpenEnterAnimation 一个activity创建进入的效果

android:activityOpenExitAnimation 一个activity还没有finish()下退出效果, 比如有俩个activity A,B 首先启动A 然后再启动B 那么A还没有finish() 这A的退出效果

android:activityCloseEnterAnimation 表示上一个activity返回进入效果 比如有俩个activity A,B B退出后A进入的效果

activityCloseExitAnimation 表示的是activity finish()之后的效果 比如有俩个activity A,B B退出后会被finish() 那么B的退出效果在这定义

 

    <style name="AppTheme" parent="@android:style/Theme">     
        <item name="android:windowAnimationStyle">@style/activityAnimation</item>
    </style>
    <style name="activityAnimation" parent="@android:style/Animation">
        <item name="android:activityOpenEnterAnimation">@anim/slide_right_in</item>
        <item name="android:activityOpenExitAnimation">@anim/slide_left_out</item>
        <item name="android:activityCloseEnterAnimation">@anim/slide_left_in</item>
        <item name="android:activityCloseExitAnimation">@anim/slide_right_out</item>
    </style>

 slide_left_in.xml

<set
  xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:duration="300" android:fromXDelta="-100.0%p" android:toXDelta="0.0" />
</set>

slide_left_out.xml

<set
  xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:duration="300" android:fromXDelta="0.0" android:toXDelta="-100.0%p" />
</set>

slide_right_in.xml

<set
  xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:duration="300" android:fromXDelta="100.0%p" android:toXDelta="0.0" />
</set>

slide_right_out.xml

<set
  xmlns:android="http://schemas.android.com/apk/res/android">
    <translate android:duration="300" android:fromXDelta="100.0%p" android:toXDelta="0.0" />
</set>

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。