android 4.4(kitkat) 及更高版本上不同活动的动画布局

Animate layout on different activities on android 4.4(kitkat) and higher

现在 this specific page does describe 一种在不同活动的布局之间设置动画的方法,但问题是 API 仅支持 android 5.0 及更高版本,所以我想要了解在两个不同的活动中可以为布局完成动画(如过渡或任何其他类型的 fade/slide 等)的方式。

您不能在 Lollipop 版本之前的主题上设置过渡,但您仍然可以通过编程方式使用动画。

这是一个动画示例,它在首次创建时将新的 activity 滑入,而在您按下后退按钮时则相反。

left_in.xml

<set>

    <translate xmlns:android="http://schemas.android.com/apk/res/android"
               android:fromXDelta="-100%"
               android:toXDelta="0"
               android:interpolator="@android:anim/decelerate_interpolator"
               android:duration="500"/> //in milliseconds
</set>

right_in.xml

<set>


    <translate xmlns:android="http://schemas.android.com/apk/res/android"
               android:fromXDelta="100%"
               android:toXDelta="0"
               android:interpolator="@android:anim/decelerate_interpolator"
               android:duration="500"/>
</set>

left_out.xml

<set>

    <translate xmlns:android="http://schemas.android.com/apk/res/android"
               android:fromXDelta="0"
               android:toXDelta="-100%"
               android:interpolator="@android:anim/decelerate_interpolator"
               android:duration="500"/>
</set>

right_out.xml

<set>

    <translate xmlns:android="http://schemas.android.com/apk/res/android"
               android:fromXDelta="0"
               android:toXDelta="100%"
               android:interpolator="@android:anim/decelerate_interpolator"
               android:duration="500"/>
</set>

在您的活动中,您可以按如下方式调用动画:

开始时:overridePendingTransition(R.anim.right_in, R.anim.left_out);

后退:overridePendingTransition(R.anim.left_in, R.anim.right_out);

或以上任意组合。

请注意 overridePendingTransition 上的第一个动画用于传入 activity,第二个动画用于传出 activity。