Android 转场动画 windowAnimation和ActivityAnimation的区别

点击上方“程序员大咖”,选择“置顶公众号”

关键时刻,第一时间送达!

android转场动画windowAnimation和ActivityAnimation的区别


显而易见,window与Activity本身从名字上就知道不同,但对于项目开发中 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 吧。

  • 来自: 开源社区

  • 程序员大咖整理发布,转载请联系作者获得授权

【点击成为安卓大神】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值