activity切换动画有两种方式,首先创建好进入和退出的动画:
pop_enter_anim
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="3300" android:fromYDelta="100%p" android:toYDelta="0%p" /> </set>
pop_exit_anim
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="3300" android:fromYDelta="10%p" android:toYDelta="100%p" /> </set>
接着进行动画配置:
第一种:
startActivity(intent); overridePendingTransition(R.anim.pop_enter_anim, R.anim.pop_exit_anim);
第二种方法:
<activity android:name="c.CCBBActivity" android:theme="@style/toumingdialog"></activity>
<style name="toumingdialog" parent="Theme.AppCompat.Dialog"> <item name="android:windowAnimationStyle">@style/fade</item> </style>
<style name="fade" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/pop_enter_anim</item> <item name="android:activityOpenExitAnimation">@anim/pop_exit_anim</item> <item name="android:activityCloseEnterAnimation">@anim/pop_enter_anim</item> <item name="android:activityCloseExitAnimation">@anim/pop_exit_anim</item> </style>
如果需要大量的动画,推荐第二种,配置style就可以了。
但是会有一种情况,就是退出动画失效,原因未知,可以这样解决:
在要退出的地方加入代码:
@Override public void finish() { super.finish(); this.overridePendingTransition(R.anim.pop_enter_anim,R.anim.pop_exit_anim); }