您的位置:首页 > 移动开发 > Android开发

android activity切换动画使用overridePendingTransition

2016-11-03 19:05 579 查看
/**
* activity切换动画,必须在startActivity和finish之后调用
* Created by wuxiaojun on 16-11-3.
*/
public class ActivitySlideAnim {

public static void slideInAnim(Activity activity) {
//enter是activity进入动画,exit是activity出去动画 anim_slide_right_out
activity.overridePendingTransition(R.anim.anim_slide_right_in, R.anim.anim_slide_left_out);
}

public static void slideOutAnim(Activity activity) {
//anim_slide_left_out
activity.overridePendingTransition(R.anim.anim_slide_left_in, R.anim.anim_slide_right_out);
}

}

下边是anim文件夹下的xml文件

anim_slide_left_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate
android:duration="200"
android:fromXDelta="-100%p"
android:toXDelta="0" />

</set>anim_slide_left_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate
android:duration="200"
android:fromXDelta="0"
android:toXDelta="-100%p" />

</set>anim_slide_right_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate
android:duration="200"
android:fromXDelta="100%p"
android:toXDelta="0" />

</set>anim_slide_right_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">

<translate android:fromXDelta="0"
android:toXDelta="100%p"
android:duration="200" />

</set>
之所以不使用theme的方式,是因为当我们在style文件中指定:

<item name="android:windowIsTranslucent">true</item>

设置这个属性的时候,theme的动画失效了,网上也有方式解决,但是亲自测试之后发现没有用,所以自己重新用另外一种方法实现
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息