Android 两个activity之间“平推”的动画切换效果

来源:互联网 发布:深圳奥萨制药 知乎 编辑:程序博客网 时间:2024/05/01 02:15

从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平滑切换):


原创粉丝点击