Activity过场动画效果¶
Activity切换的时候可以指定一些过场动画。 例如指定入场和退场的滑动方向。
我们先定义一些动画xml在drawable
目录中
enter_from_left_to_right.xml
,从左到右入场
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="-100%p"
android:toXDelta="0%p" />
可以看出x轴方向上的动画使用的是fromXDelta
和toXDelta
属性。
enter_from_right_to_left.xml
,右到左入场
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="100%p"
android:toXDelta="0%p" />
exit_to_left.xml
,从左边退场
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="0%p"
android:toXDelta="-100%p" />
exit_to_right.xml
,从右边退场
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_shortAnimTime"
android:fromXDelta="0%p"
android:toXDelta="100%p" />
然后在styles.xml
中定义使用的动画效果。
<style name="AppMainTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowAnimationStyle">@style/DefActivityAnimation</item>
</style>
<!-- 指定过场动画 -->
<style name="DefActivityAnimation">
<item name="android:activityOpenExitAnimation">@anim/exit_to_left</item>
<item name="android:activityOpenEnterAnimation">@anim/enter_from_right_to_left</item>
<item name="android:activityCloseExitAnimation">@anim/exit_to_right</item>
<item name="android:activityCloseEnterAnimation">@anim/enter_from_left_to_right</item>
</style>
参考