美文网首页Android开发
Android Activity切换动画(进入和退出)

Android Activity切换动画(进入和退出)

作者: wuchao226 | 来源:发表于2018-07-18 14:00 被阅读1188次

    方式一

    通过overridePendingTransition方法实现Activity切换动画
    overridePendingTransition方法是Activity中提供的Activity跳转动画方法,通过该方法可以实现Activity跳转时的动画效果

    override fun startActivity(intent: Intent?) {
            super.startActivity(intent)
            overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
     }
    override fun finish() {
            super.finish()
            overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right)
     }
    
    • overridePendingTransition方法需要在startAtivity方法或者是finish方法调用之后立即执行
    • 参数enterAnim表示的是从Activity a跳转到Activity b,进入b时的动画效果
    • 参数exitAnim表示的是从Activity a跳转到Activity b,离开a时的动过效果

    方式二

    使用style的方式定义Activity的切换动画

     <!-- 主题样式 -->
        <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <!-- Customize your theme here. -->
            <item name="colorPrimary">@color/colorPrimary</item>
            <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
            <item name="colorAccent">@color/colorAccent</item>
            <item name="android:windowContentOverlay">@null</item>
            <item name="android:textSize">@dimen/text_middle_size</item>
            <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
        </style>
    
        <!--Activity进场。出场动画-->
        <style name="AnimationActivity" parent="@android:style/Animation.Activity">
            <!--用于设置打开新的Activity并进入新的Activity展示的动画-->
            <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item>
            <!--用于设置打开新的Activity并销毁之前的Activity展示的动画-->
            <item name="android:activityOpenExitAnimation">@anim/slide_out_left</item>
            <!--用于设置关闭当前Activity进入上一个Activity展示的动画-->
            <item name="android:activityCloseEnterAnimation">@anim/slide_in_left</item>
            <!--用于设置关闭当前Activity时展示的动画-->
            <item name="android:activityCloseExitAnimation">@anim/slide_out_right</item>
        </style>
    
     <!--res/anim/slide_in_left-->
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:zAdjustment="top"
         android:duration="300">
        <translate
            android:fromXDelta="-100%p"
            android:interpolator="@android:anim/decelerate_interpolator"
            android:toXDelta="0"/>
    </set>
    
    <!--res/anim/slide_in_right-->
    <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:duration="300"
         android:zAdjustment="top">
        <translate
            android:fromXDelta="100%p"
            android:interpolator="@android:anim/decelerate_interpolator"
            android:toXDelta="0.0"/>
    </set>
    
     <!--res/anim/slide_out_left-->
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:zAdjustment="top"
         android:duration="300">
        <translate
            android:fromXDelta="0.0"
            android:interpolator="@android:anim/accelerate_interpolator"
            android:toXDelta="-100%p"/>
    </set>
    
    <!--res/anim/slide_out_right-->
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
         android:duration="300"
         android:zAdjustment="top">
        <translate
            android:fromXDelta="0.0"
            android:interpolator="@android:anim/accelerate_interpolator"
            android:toXDelta="100%p"/>
    </set>
    

    相关文章

      网友评论

        本文标题:Android Activity切换动画(进入和退出)

        本文链接:https://www.haomeiwen.com/subject/yuhopftx.html