Android开发

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

2018-07-18  本文已影响1188人  wuchao226

方式一

通过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)
 }

方式二

使用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>
上一篇下一篇

猜你喜欢

热点阅读