android转场动画windowAnimation和ActivityAnimation的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android转场动画windowAnimation和ActivityAnimation的区别相关的知识,希望对你有一定的参考价值。

1.windowAnimation包括windowEnterAnimation和windowExitAnimation;
  ActivityAnimation包含android:activityOpenEnterAnimation,android:activityOpenExitAnimation,android:activityCloseEnterAnimation和android:activityCloseExitAnimation
2.在项目中WindowAnimation的控制权大于Activity的控制权,
  即在Activity转场过程中,如果同时设置了WindowAnimation和ActivityAnimation,那么可能(因为这种情况非常多)只会执行WindowAnimation
3.对于WindowAnimation的定义很简单,在style.xml文件中只需要继承Animation Style即可
  <style name="Animation" parent="@android:style/Animation">         
        <!--窗体进入动画-->
        <item name="android:windowEnterAnimation">@anim/slide_left_enter</item>
        <!--窗体退出动画-->
        <item name="android:windowExitAnimation">@anim/slide_right_exit</item>
    </style>
  对于Activity,需要继承Animation Activity Style
   <style name="FeelyouWindowAnimTheme" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@android:anim/slide_in_left</item>
        <item name="android:activityOpenExitAnimation">@android:anim/slide_out_right</item>
        <item name="android:activityCloseEnterAnimation">@anim/push_right_in</item>
        <item name="android:activityCloseExitAnimation">@anim/push_left_out</item>
   </style>
   当我们从 A1 启动 A2 时,A1 从屏幕上消失,这个动画叫做 android:activityOpenExitAnimation
   当我们从 A1 启动 A2 时,A2 出现在屏幕上,这个动画叫做 android:activityOpenEnterAnimation
   当我们从 A2 退出回到 A1 时,A2 从屏幕上消失,这个叫做 android:activityCloseExitAnimation
   当我们从 A2 退出回到 A1 时,A1 出现在屏幕上,这个叫做 android:activityCloseEnterAnimation
 从上述2中动画的定义上来看,显然ActivityAnimation更为复杂,但这种复杂带来的转场效果非常好,
 可以同时控制2个Activity的动画,而不像WindowAnimation只能控制下一个Activity的窗体动画。
5.在开发中,窗体动画也可以使用 Activity.overridePendingTransition来设置,也可以定义在主题中,但Activity只能使用在主题中
<application
        android:name="test.view.weitop.BaseApplication"
        android:allowBackup="false"
        android:hardwareAccelerated="false"
        android:icon="@drawable/app_logo"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:theme="@style/Theme.App" >
</application>
6.对于比较追求界面美感的动画,使用ActivityAnimation要好得多,因此对于一般开发使用windowAnimation即可,
  但对于追求用户体验,那么直接使用Activity Animation 吧

参考技术A 区别主要如下
1.windowAnimation包括windowEnterAnimation和windowExitAnimation;ActivityAnimation包含android:activityOpenEnterAnimation,android:activityOpenExitAnimation,android:activityCloseEnterAnimation和android:activityCloseExitAnimation
2.在项目中WindowAnimation的控制权大于Activity的控制权,即在Activity转场过程中,如果同时设置了WindowAnimation和ActivityAnimation,那么可能(因为这种情况非常多)只会执行WindowAnimation
3.对于WindowAnimation的定义很简单,在style.xml文件中只需要继承Animation Style即可。

以上是关于android转场动画windowAnimation和ActivityAnimation的区别的主要内容,如果未能解决你的问题,请参考以下文章

Android中的转场动画以及material-components-android 使用

android转场动画windowAnimation和ActivityAnimation的区别

android转场动画windowAnimation和ActivityAnimation的区别

Android 转场动画源码剖析

Android 转场动画源码剖析

Android 转场动画源码剖析