1、verridePendingTransition函数必需紧挨着startActivity()或者finish()函数之后调用
2、不过有时候overridePendingTransition 这个函数会不起作用,大概是以下三个方面的原因:
-
在ActivityGroup等的嵌入式Activity中,这个比较容易解决,用如下方法就可以了:
this.getParent().overridePendingTransition 就可以解决。 -
在一个Activity的内部类中,或者匿名类中,这时候只好用handler来解决了。
-
手机的显示动画效果被人为或者其他方式给关闭了 现在打开即可 设置->显示->显示动画效果
3.、关于其中的两个参数:
- 第一个参数:将要显示的Activity显示的动画
- 第二个参数:将要消失的Activity消失的动画
参数为0:即为无动画效果
overridePendingTransition(0,0);
4、简单示例
目标要实现点击弹出登录的Activity,要求是登陆的Activity从底部弹出,然后finish的时候反方向消失。
startActivity(i);
overridePendingTransition(R.anim.push_in, 0);
finish();
overridePendingTransition(0,R.anim.push_out);
push_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="300"/>
</set>
push_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate android:fromYDelta="0" android:toYDelta="100%p" android:duration="300"/>
</set>