美文网首页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