概述
设置Activity的切换动画,有两种方式:
1.使用overridePendingTransition(新Activity进入动画, 旧Activity退出动画),需要紧接在startActivity 和finish()后。
2.在manifest中配置Activity的theme。
下面着重说明第二种情况:
- <style name="ThemeActivity" parent="AppBaseTheme">
- <item name="android:windowAnimationStyle">@style/activityAnimatStyle</item>
- </style>
- <style name="activityAnimatStyle" parent="@android:style/Animation.Activity">
- <!-- 新Activity 进入 -->
- <item name="android:activityOpenEnterAnimation">@anim/animate_right_in</item>
- <!-- 旧Activity退出 -->
- <item name="android:activityOpenExitAnimation">@anim/animate_old_aphla</item>
- <!-- 新Activity退出 -->
- <item name="android:activityCloseExitAnimation">@anim/animate_left_out</item>
- <!-- 旧Activity进入 -->
- <item name="android:activityCloseEnterAnimation">@anim/animate_old_aphla</item>
- </style>
现在有3个Activity:A、B、C:
配置B的
- android:theme="@style/ThemeActivity"
若从B启动C,然后从C回退到B,此时才会将Android:activityCloseExitAnimation作用在C,将android:activityCloseEnterAnimation作用在B。
所以在使用manifest配置的时候,需要注意显示的target 所配置的属性,就如同overridePendingTransition一样。所以这四个属性决定的是【显示】当前Activity的时候,他的动画和与之关联的动画。
我们可以在application 节点中配置theme,那么所有的Activity的进出动画都是一致的,如果要单独配置两个Activity的交互动画,可以如下配置:
A-->B
在A的theme中,只用声明:
- <!-- 新Activity退出 -->
- <item name="android:activityCloseExitAnimation">@anim/animate_left_out</item>
- <!-- 旧Activity进入 -->
- <item name="android:activityCloseEnterAnimation">@anim/animate_old_aphla</item>
在B的theme中,只声明:
- <!-- 新Activity 进入 -->
- <item name="android:activityOpenEnterAnimation">@anim/animate_right_in</item>
- <!-- 旧Activity退出 -->
- <item name="android:activityOpenExitAnimation">@anim/animate_old_aphla</item>
那么从A启动B时,会执行B声明的动画,此时要显示的是B,B是主体,当从B回退到A的时候,会执行A声明的动画,此时A是主体。
此时应该很清楚这四个属性作用的时机了吧。
这里还有一点要注意,如果使用了support包,theme的parent需要继承自Theme.AppCompat ,否则会报错。
如下
- <style name="AppBaseTheme" parent="Theme.AppCompat.Light">
- </style>
- <!-- Application theme. -->
- <style name="AppTheme" parent="AppBaseTheme">
- <!-- All customizations that are NOT specific to a particular API-level can go here. -->
- </style>
- <style name="ThemeActivity" parent="AppBaseTheme">
- <item name="android:windowAnimationStyle">@style/activityAnimatStyle</item>
- </style>
- <style name="activityAnimatStyle" parent="@android:style/Animation.Activity">
- <!-- 新Activity 进入 -->
- <item name="android:activityOpenEnterAnimation">@anim/animate_right_in</item>
- <!-- 旧Activity退出 -->
- <item name="android:activityOpenExitAnimation">@anim/animate_old_aphla</item>
- <!-- 新Activity退出 -->
- <item name="android:activityCloseExitAnimation">@anim/animate_left_out</item>
- <!-- 旧Activity进入 -->
- <item name="android:activityCloseEnterAnimation">@anim/animate_old_aphla</item>
- </style>
最后
以上就是懵懂钢笔为你收集整理的Activity 设置切换动画的全部内容,希望文章能够帮你解决Activity 设置切换动画所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复