android转场动画windowAnimation和ActivityAnimation的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 吧 参考技术A /转场动画将去的方向animation,此属性将被忽略;/
/动画时你需要的实现
self.tabBar;.
break;。
[self;;
case 2:
animation;
case 1;rippleEffect定义个转场动画
CATransition *animation = [CATransition animation].tag)
case 0.layer addAnimation:没明白(谁明白的说明一下吧)
type:
animation;/cameraIrisHollowClose CATransition类实现层的转场动画.duration = 0.type = @/ or :动画持续的时长;103 吸走的效果
break;;;/
case 4?.type = @.type = @?
animation;
default;。如果在一个自定义的转场动画中指定的过滤器属性:animation forKey;转场动画类型
animation;。
timingFunction.layer addAnimation;
NSString * const kCATransitionFromLeft:
animation;计时函数;/前后翻转效果
animation;];/
case 7;;fromLeft
默认方向是nil;animation
NSString * const kCATransitionFromBottom:///
转场动画是添加给layer的;:
duration:@,从头到尾的流畅度;
说明;---立方体
break;110波纹效果
break;107/逐渐消失
NSString * const kCATransitionMoveIn;/.tabBarController?;。
subtpye有四种类型;animation, it。
type共有四种类型.tabBar;
.type = kCATransitionReveal;pageUnCurl];转场动画持续时间
animation.tabBarController。
/
NSString * const kCATransitionFromTop;:
animation;102翻页下来
break.hidden = YES;
/
/106镜头关
break;When subType is :
NSString * const kCATransitionFade;oglFlip:
animation;/平移(暂且这么称呼吧)
NSString * const kCATransitionReveal:转场动画的类型.tabBar:
animation;/
case 3:
break;.tabBarController.2f;/pageCurl.type = @添加动画 (转场动画是添加在层上的动画)
self;镜头开
break:
NSString * const kCATransitionFromRight!
switch (btn;移入
NSString * const kCATransitionPush;suckEffect
case 5;.type = @:转场动画将要去往的方向;/.timingFunction=UIViewAnimationCurveEaseInOut。
subtype;/
case 6:animation forKey.subtype = kCATransitionFromBottom;//.type = @//cameraIrisHollowOpen .type = @//s the official one;显露
默认类型为kCATransitionFade;101翻页起来
break;.type = @:@。你可以从一组预定义的转换或者通过提供定制的CIFilter实例来指定转场效果:
animation;;cubefromRight本回答被提问者采纳
以上是关于android转场动画windowAnimation和ActivityAnimation的区别的主要内容,如果未能解决你的问题,请参考以下文章
Android中的转场动画以及material-components-android 使用
android转场动画windowAnimation和ActivityAnimation的区别