在网上看了许多关于如何去掉Activity动画的blog,我觉得说的仍然不够清晰。 所以我在这边简单画图说明一下:如何去掉或替换系统的默认动画
改变动画的方式
1.在Activity中调用 overridePendingTransition
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
// 去掉进入播放器的动画效果
((Activity)container.getContext()).overridePendingTransition(0, 0);
overridePendingTransition既可以取消,也可以指定动画
- 使用动画主题
<style name="ActivityThemeAnimDisabled" parent="@style/ActivityTheme">
<item name="android:windowAnimationStyle">@style/DisableTaskAnim</item>
</style>
<!--去掉从其他Task回到本Activity的动画-->
<style name="DisableTaskAnim" parent="@android:style/Animation.Activity">
<item name="android:taskCloseEnterAnimation">@null</item>
<item name="android:taskCloseExitAnimation">@null</item>
</style>
在Manifest中设置主题即可
<activity
android:theme="@style/ActivityThemeAnimDisabled">
使用的时机
假如有三个Activity,要对ActivityB的动画进行修改
如图所示
从其他Activity跳转到ActivityB的动画 可以在B中配置相应属性
ActivityB跳转到其他Actviity可以使用OverridePendingTransition完成