如何设定Android Activity间切换时的动画
2个回答
2015-12-05 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
首先定义好acitivity切换的动画
<style name="FeelyouWindowAnimTheme" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/in_from_left</item>
<item name="android:activityOpenExitAnimation">@anim/out_from_right</item>
<item name="android:activityCloseEnterAnimation">@anim/in_from_right</item>
<item name="android:activityCloseExitAnimation">@anim/out_from_left</item>
</style>
注意需要继承自 @android:style/Animation.Activity。
4个属性的意思:
假设我们有 2 个 Activity,分别是 A1 和 A2:
当我们从 A1 启动 A2 时,A1 从屏幕上消失,这个动画叫做 android:activityOpenExitAnimation
当我们从 A1 启动 A2 时,A2 出现在屏幕上,这个动画叫做 android:activityOpenEnterAnimation
当我们从 A2 退出回到 A1 时,A2 从屏幕上消失,这个叫做 android:activityCloseExitAnimation
当我们从 A2 退出回到 A1 时,A1 出现在屏幕上,这个叫做 android:activityCloseEnterAnimation
定义具体的动画文件
anim/out_from_right.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100%p"
android:toYDelta="0" >
</translate>
anim/in_from_left.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="-100%p"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0" >
</translate>
anim/out_from_left.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="-100%p"
android:toYDelta="0" >
</translate>
anim/in_from_right.xm
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="100%p"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0" >
</translate>
最后设定activity的主题的android:windowAnimationStyle
<style name="AnimActivityTheme">
<item name="android:windowAnimationStyle">@style/FeelyouWindowAnimTheme</item>
</style>
注意两个activity都需要应用相同动画主题
<activity
android:name="com.test..A1"
android:theme="@style/AnimActivityTheme" >
</activity>
<activity
android:name="com.test.A2"
android:theme="@style/AnimActivityTheme" >
</activity>
<style name="FeelyouWindowAnimTheme" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/in_from_left</item>
<item name="android:activityOpenExitAnimation">@anim/out_from_right</item>
<item name="android:activityCloseEnterAnimation">@anim/in_from_right</item>
<item name="android:activityCloseExitAnimation">@anim/out_from_left</item>
</style>
注意需要继承自 @android:style/Animation.Activity。
4个属性的意思:
假设我们有 2 个 Activity,分别是 A1 和 A2:
当我们从 A1 启动 A2 时,A1 从屏幕上消失,这个动画叫做 android:activityOpenExitAnimation
当我们从 A1 启动 A2 时,A2 出现在屏幕上,这个动画叫做 android:activityOpenEnterAnimation
当我们从 A2 退出回到 A1 时,A2 从屏幕上消失,这个叫做 android:activityCloseExitAnimation
当我们从 A2 退出回到 A1 时,A1 出现在屏幕上,这个叫做 android:activityCloseEnterAnimation
定义具体的动画文件
anim/out_from_right.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="100%p"
android:toYDelta="0" >
</translate>
anim/in_from_left.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="-100%p"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0" >
</translate>
anim/out_from_left.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="-100%p"
android:toYDelta="0" >
</translate>
anim/in_from_right.xm
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="500"
android:fromXDelta="100%p"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="0" >
</translate>
最后设定activity的主题的android:windowAnimationStyle
<style name="AnimActivityTheme">
<item name="android:windowAnimationStyle">@style/FeelyouWindowAnimTheme</item>
</style>
注意两个activity都需要应用相同动画主题
<activity
android:name="com.test..A1"
android:theme="@style/AnimActivityTheme" >
</activity>
<activity
android:name="com.test.A2"
android:theme="@style/AnimActivityTheme" >
</activity>
展开全部
有两种方法
在startactivity之后调用overridePendingTrasaction方法设定动画,这个方法有两个参数,分别是当前Activity的退出动画和新启动的Activity的进入动画
或者在style中声明动画样式,这种方法参考这篇博文
http://blog.csdn.net/wangkuifeng0118/article/details/7566897
动画可以在res/anim目录下新建xml定义
在startactivity之后调用overridePendingTrasaction方法设定动画,这个方法有两个参数,分别是当前Activity的退出动画和新启动的Activity的进入动画
或者在style中声明动画样式,这种方法参考这篇博文
http://blog.csdn.net/wangkuifeng0118/article/details/7566897
动画可以在res/anim目录下新建xml定义
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询