从android2.0开始就增加了一个 overridePendingTransition(in,out)方法,第一个参数是activity进入的方式,第二个参数是当前activity退出的方式。注意:这个方法一定要在startActivity(intent)或者finish()之后调用!
好了,言归正传,说说“平推”的效果,其实在android.R.anim这个类中已经定义了一些切换的动画,比如fade_in,fade_out中,但是没有我们想要的效果,我们要做出平推效果,首先要针对切换的activity定义对应的进入动画,和退出动画。在res下新建anim目录,并在下新建in_from_right.xml(进入的动画效果),out_from_left.xml(退出动画效果)。
in_from_right.xml内容如下(原理其实就是相对位置改变,-100%时候就完全退出了):
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:duration="500"
android:fromXDelta="100%p"
android:toXDelta="0%p" />
</set>
out_from_left.xml内容如下:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate
android:duration="500"
android:fromXDelta="0%p"
android:toXDelta="-100%p" />
</set>
然后再startActivity(intent);后加上 overridePendingTransition(R.anim.in_from_right, R.anim.out_to_left);
OK啦!最终效果图如下(两个activity平滑切换):
本文介绍如何在Android应用中实现平滑的平推切换动画效果。通过自定义XML动画文件和使用overridePendingTransition方法,可以轻松地为Activity之间的转换添加定制化的动画。
603

被折叠的 条评论
为什么被折叠?



