相信大家都知道跳转动画都是用 overridePendingTransition(R.anim.anim_in,R.anim.anim_exit);方法实现
要实现动画,那么调用overridePendingTransition方法,要在startActivity 和finish之后使用。
现在来介绍下参数:
(1)、当Activity A -->跳转到 Activity B
Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); //参数1:SecondActivity的进场动画 //参数2:MainActivity的出场动画 overridePendingTransition(R.anim.anim_in,0);
(2)、在Activity B --> finish后 回到Activity A
finish(); //参数1:MainActivity的进场动画 //参数2:SecondActiviy的出场动画 overridePendingTransition(0,R.anim.anim_exit);
这里把我的动画xml贴出来:
anim_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator" > <translate android:fromYDelta="100%" android:toYDelta="0" android:duration="@android:integer/config_mediumAnimTime" /> </set>
anim_exit.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator" android:zAdjustment="top"> <translate android:fromYDelta="0" android:toYDelta="100%" android:duration="@android:integer/config_mediumAnimTime" /> </set>
重点来了!!!
当这些代码运行后,以逻辑和理论:此时是跳转的时候 A页面不动,B页面从下而上盖住A页面。当finish时,是B页面自上而下滑动显示出页面A。
但是事实是,点击跳转的时候,A页面会突然黑掉,B页面从下而上盖住。
那么怎么无缝链接呢;解释很简单。再来个xml以做成假象:
anim_exit2.xml 这个xml可以默认是A页面退出的动画。这里就是让A页面半透明不让其消失,此时你应该清除了
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:duration="@android:integer/config_mediumAnimTime" android:fromAlpha="1" android:toAlpha="0.5" /> </set>
修改跳转代码重新运行!
Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); //参数1:SecondActivity的进场动画 //参数2:MainActivity的出场动画 overridePendingTransition(R.anim.anim_in,R.anim.anim_exit2);
OK!!大功告成、
有个进阶博文:http://www.jianshu.com/p/37e94f8b6f59