Activity的动画实现方式有三种,一下分别介绍三种Activity跳转动画的实现方式。
一、 动画定义
在实现Activty的跳转动画之前,先要完成动画的定义:
- 从左侧跳入:
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="-100%p"
android:toXDelta="0" />
</set>
- 从右侧滑入:
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0" />
</set>
- 从左侧滑出
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="0"
android:toXDelta="-100%p" />
</set>
- 从右侧滑出
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="@android:integer/config_mediumAnimTime"
android:fromXDelta="0"
android:toXDelta="100%p" />
</set>
二、 第一种方式:
- 使用overridePendingTransition(R.anim.slide_out_left,R.anim.slide_in_right);
- 使用方式:在startActivity()后,finish()之前使用。
- 必须在android 2.0之后使用;
三、 第二种方式:配置theme文件
- 配置动画文件:
<style name="activityAnimationStyle" parent="@android:style/Animation.Activity" mce_bogus="1"> <span style="white-space:pre"> </span> <item name="android:activityOpenEnterAnimation">@anim/slide_in_right</item>
<item name="android:activityOpenExitAnimation">@anim/slide_out_left</item>
<item name="android:activityCloseEnterAnimation">@anim/slide_in_left</item>
<item name="android:activityCloseExitAnimation">@anim/slide_out_right</item>
</style>
- 配置theme文件:
<style name="setup_theme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/actionbar_def_style</item>
<item name="android:windowAnimationStyle">@style/activityAnimationStyle</item>
</style>
三、 使用ActivityOptionsCompat,但是支持API level 16,如果支持低的版本,必须使用support 库。
ActivityOptionsCompat opts = ActivityOptionsCompat.makeCustomAnimation(fromActivity, R.anim.slide_in_left, R.anim.slide_out_right);
ActivityCompat.startActivity(fromActivity, intent, opts.toBundle());