Android动画<第七篇>:Activity切换动画

Activity切换动画有5种实现方式,在实现Activity切换动画之前,先来说明一下Activity切换的两种方式:

  • 调用startActivity方法启动一个新的Activity并跳转其页面
  • 调用finish方法销毁当前的Activity返回上一个Activity界面

【方法一】 使用 overridePendingTransition 方法实现 Activity 跳转动画

  • 当从A界面跳转到B界面时:

              Intent intent = new Intent(MainActivity.this, MainActivity2.class);
              startActivity(intent);
              overridePendingTransition(R.anim.jump_enter_anim, R.anim.jump_exit_anim);
    

startActivity下面立即执行overridePendingTransition方法,第一个参数为B界面的入场动画,第二个参数是A界面的出场动画。

动画代码如下:

jump_enter_anim.xml




    


jump_exit_anim.xml




    


效果如下:

Android动画<第七篇>:Activity切换动画_第1张图片
34.gif
  • 当finish掉B界面(相当于从B界面跳转到A界面)
            finish();
            overridePendingTransition(R.anim.finish_enter_anim, R.anim.finish_exit_anim);

finish下面立即执行overridePendingTransition方法,第一个参数为A界面的入场动画,第二个参数是B界面的出场动画。

动画代码如下:

finish_enter_anim.xml




    


finish_exit_anim.xml




    


效果如下:

Android动画<第七篇>:Activity切换动画_第2张图片
35.gif

当然,以上动画仅仅是位移动画,除了位移动画,还可以加上缩放、旋转、透明度的组合动画。(这个在第一篇的补间动画就说过了)

【方法二】 使用 style 的方式定义 Activity 的切换动画

【方法一】虽然可以实现Activity的切换效果,但是往往一个项目中会有多个startActivityfinish代码,难道都必须要在它们之后执行overridePendingTransition代码吗?

答案是否定的,我们可以在主题样式里面设置统一的切换动画。 代码如下:

Application的主题样式如下:


其中,windowAnimationStyle就是设置Activity切换动画。

其余代码如下:



以上四个动画文件的代码和【方法一】一样。

【方法三】 使用 ActivityOptions 切换动画实现 Activity 跳转动画

【方法四】 使用 ActivityOptions 之后内置的动画效果通过 style 的方式

【方法五】 使用 ActivityOptions 动画共享组件的方式实现跳转 Activity 动画

【方法三】【方法四】【方法五】为下一篇的内容,使用ActivityOptions实现UI之间的转场动画(不仅仅是Activity的切换动画)

[本章完...]

你可能感兴趣的:(Android动画<第七篇>:Activity切换动画)