activity切换动画总结
2015-08-08 12:08
423 查看
转载请注明出处:/article/1842864.html
今天没事总结了一下activity切换动画相关知识,包括淡入淡出动画,左滑入右滑出,顶部滑入底部滑出等比较简单的动画,现在记录如下
activity淡入动画,放在文件act_switch_fade_in.xml中
activity淡出动画,放在act_switch_fade_out.xml中
activity底部滑入动画,放在act_switch_translate_bottom2screen.xml中
activity顶部滑入动画,放在act_switch_translate_top2screen.xml中
activity左边滑入动画,放在act_switch_translate_left2screen.xml中
activity右边滑入动画,放在act_switch_translate_right2screen.xml中
activity底部滑出动画(滑动到底部隐藏),放在act_switch_translate_screen2bottom.xml中
activity顶部滑出动画(滑动到顶部隐藏),放在act_switch_translate_screen2top.xml中
activity左边滑出动画(滑动到左边隐藏),放在act_switch_translate_screen2left.xml中
activity右边滑出动画(滑动到右边隐藏),放在act_switch_translate_screen2right.xml中
这些activity动画定义好了,还需要定义样式及主题,我就直接上代码了,里面都有注释
这个文件里定义了各种activity切换动画主题,大家需要运用哪种切换动画直接运用主题到appliation就行了,即在Manifest.xml文件里的application标签加上这么一个属性(比如想实现activity从顶部滑入底部滑出,应如下设置)
大家可以下载试下效果,下载后解压有一个anim文件夹入在res下即可,还有一个xml文件,activity_switch_anim.xml文件需要放在values文件夹下
源码下载
今天没事总结了一下activity切换动画相关知识,包括淡入淡出动画,左滑入右滑出,顶部滑入底部滑出等比较简单的动画,现在记录如下
activity淡入动画,放在文件act_switch_fade_in.xml中
<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@integer/animation_duration" android:fromAlpha="0.0" android:interpolator="@android:anim/accelerate_interpolator" android:toAlpha="1.0" />
activity淡出动画,放在act_switch_fade_out.xml中
<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@integer/animation_duration" android:fromAlpha="1.0" android:interpolator="@android:anim/accelerate_interpolator" android:toAlpha="0.0" />
activity底部滑入动画,放在act_switch_translate_bottom2screen.xml中
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="100%" android:toYDelta="0%" android:duration="@integer/animation_duration" > </translate>
activity顶部滑入动画,放在act_switch_translate_top2screen.xml中
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="-100%" android:toYDelta="0%" android:duration="@integer/animation_duration" > </translate>
activity左边滑入动画,放在act_switch_translate_left2screen.xml中
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="-100%" android:toXDelta="0%" android:duration="@integer/animation_duration" > </translate>
activity右边滑入动画,放在act_switch_translate_right2screen.xml中
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="100%" android:toXDelta="0%" android:duration="@integer/animation_duration" > </translate>
activity底部滑出动画(滑动到底部隐藏),放在act_switch_translate_screen2bottom.xml中
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="0%" android:toYDelta="100%" android:duration="@integer/animation_duration" > </translate>
activity顶部滑出动画(滑动到顶部隐藏),放在act_switch_translate_screen2top.xml中
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="0%" android:toYDelta="-100%" android:duration="@integer/animation_duration" > </translate>
activity左边滑出动画(滑动到左边隐藏),放在act_switch_translate_screen2left.xml中
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0%" android:toXDelta="-100%" android:duration="@integer/animation_duration" > </translate>
activity右边滑出动画(滑动到右边隐藏),放在act_switch_translate_screen2right.xml中
<?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0%" android:toXDelta="100%" android:duration="@integer/animation_duration" > </translate>
这些activity动画定义好了,还需要定义样式及主题,我就直接上代码了,里面都有注释
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="animation_duration">200</integer> <!-- 淡入淡出动画 --> <style name="activity_switch_fade" parent="AppTheme"> <item name="android:windowAnimationStyle">@style/fade</item> </style> <!-- 第一个表示新的activity创建进入效果, 第2个表示activity还没有finish()下退出效果, 第3个表示上一个activity返回进入效果, 第4个表示的是activity finish()之后退出效果 比如有两个activity A和B, A上面有个按钮可以打开B, 点击按钮后,此时A执行第二个动画(android:activityOpenExitAnimation) B执行第一个动画(android:activityOpenEnterAnimation) 如此此时按下返回键,B退出,A显示,则此时A执行动画3(android:activityCloseEnterAnimation) B执行动画4(android:activityCloseExitAnimation) --> <style name="fade" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/act_switch_fade_in</item> <item name="android:activityOpenExitAnimation">@anim/act_switch_no_anim</item> <item name="android:activityCloseEnterAnimation">@anim/act_switch_no_anim</item> <item name="android:activityCloseExitAnimation">@anim/act_switch_fade_out</item> </style> <!-- 左边滑入左边滑出 --> <style name="activity_switch_translate_left" parent="AppTheme"> <item name="android:windowAnimationStyle">@style/translate_left</item> </style> <!-- 第一个表示新的activity创建进入效果, 第2个表示activity还没有finish()下退出效果, 第3个表示上一个activity返回进入效果, 第4个表示的是activity finish()之后退出效果 比如有两个activity A和B, A上面有个按钮可以打开B, 点击按钮后,此时A执行第二个动画(android:activityOpenExitAnimation) B执行第一个动画(android:activityOpenEnterAnimation) 如此此时按下返回键,B退出,A显示,则此时A执行动画3(android:activityCloseEnterAnimation) B执行动画4(android:activityCloseExitAnimation) --> <style name="translate_left" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/act_switch_translate_left2screen</item> <item name="android:activityOpenExitAnimation">@anim/act_switch_no_anim</item> <item name="android:activityCloseEnterAnimation">@anim/act_switch_no_anim</item> <item name="android:activityCloseExitAnimation">@anim/act_switch_translate_screen2left</item> </style> <!-- 右边滑入右边滑出 --> <style name="activity_switch_translate_right" parent="AppTheme"> <item name="android:windowAnimationStyle">@style/translate_right</item> </style> <!-- 第一个表示新的activity创建进入效果, 第2个表示activity还没有finish()下退出效果, 第3个表示上一个activity返回进入效果, 第4个表示的是activity finish()之后退出效果 比如有两个activity A和B, A上面有个按钮可以打开B, 点击按钮后,此时A执行第二个动画(android:activityOpenExitAnimation) B执行第一个动画(android:activityOpenEnterAnimation) 如此此时按下返回键,B退出,A显示,则此时A执行动画3(android:activityCloseEnterAnimation) B执行动画4(android:activityCloseExitAnimation) --> <style name="translate_right" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/act_switch_translate_right2screen</item> <item name="android:activityOpenExitAnimation">@anim/act_switch_no_anim</item> <item name="android:activityCloseEnterAnimation">@anim/act_switch_no_anim</item> <item name="android:activityCloseExitAnimation">@anim/act_switch_translate_screen2right</item> </style> <!-- 顶部滑入顶部滑出 --> <style name="activity_switch_translate_top" parent="AppTheme"> <item name="android:windowAnimationStyle">@style/translate_top</item> </style> <!-- 第一个表示新的activity创建进入效果, 第2个表示activity还没有finish()下退出效果, 第3个表示上一个activity返回进入效果, 第4个表示的是activity finish()之后退出效果 比如有两个activity A和B, A上面有个按钮可以打开B, 点击按钮后,此时A执行第二个动画(android:activityOpenExitAnimation) B执行第一个动画(android:activityOpenEnterAnimation) 如此此时按下返回键,B退出,A显示,则此时A执行动画3(android:activityCloseEnterAnimation) B执行动画4(android:activityCloseExitAnimation) --> <style name="translate_top" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/act_switch_translate_top2screen</item> <item name="android:activityOpenExitAnimation">@anim/act_switch_no_anim</item> <item name="android:activityCloseEnterAnimation">@anim/act_switch_no_anim</item> <item name="android:activityCloseExitAnimation">@anim/act_switch_translate_screen2top</item> </style> <!-- 底部滑入底部滑出 --> <style name="activity_switch_translate_bottom" parent="AppTheme"> <item name="android:windowAnimationStyle">@style/translate_bottom</item> </style> <!-- 第一个表示新的activity创建进入效果, 第2个表示activity还没有finish()下退出效果, 第3个表示上一个activity返回进入效果, 第4个表示的是activity finish()之后退出效果 比如有两个activity A和B, A上面有个按钮可以打开B, 点击按钮后,此时A执行第二个动画(android:activityOpenExitAnimation) B执行第一个动画(android:activityOpenEnterAnimation) 如此此时按下返回键,B退出,A显示,则此时A执行动画3(android:activityCloseEnterAnimation) B执行动画4(android:activityCloseExitAnimation) --> <style name="translate_bottom" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/act_switch_translate_bottom2screen</item> <item name="android:activityOpenExitAnimation">@anim/act_switch_no_anim</item> <item name="android:activityCloseEnterAnimation">@anim/act_switch_no_anim</item> <item name="android:activityCloseExitAnimation">@anim/act_switch_translate_screen2bottom</item> </style> <!-- 顶部滑入底部滑出 --> <style name="activity_switch_translate_top_bottom" parent="AppTheme"> <item name="android:windowAnimationStyle">@style/translate_top_bottom</item> </style> <!-- 第一个表示新的activity创建进入效果, 第2个表示activity还没有finish()下退出效果, 第3个表示上一个activity返回进入效果, 第4个表示的是activity finish()之后退出效果 比如有两个activity A和B, A上面有个按钮可以打开B, 点击按钮后,此时A执行第二个动画(android:activityOpenExitAnimation) B执行第一个动画(android:activityOpenEnterAnimation) 如此此时按下返回键,B退出,A显示,则此时A执行动画3(android:activityCloseEnterAnimation) B执行动画4(android:activityCloseExitAnimation) --> <style name="translate_top_bottom" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/act_switch_translate_top2screen</item> <item name="android:activityOpenExitAnimation">@anim/act_switch_translate_screen2bottom</item> <item name="android:activityCloseEnterAnimation">@anim/act_switch_translate_bottom2screen</item> <item name="android:activityCloseExitAnimation">@anim/act_switch_translate_screen2top</item> </style> <!-- 底部滑入顶部滑出 --> <style name="activity_switch_translate_bottom_top" parent="AppTheme"> <item name="android:windowAnimationStyle">@style/translate_bottom_top</item> </style> <!-- 第一个表示新的activity创建进入效果, 第2个表示activity还没有finish()下退出效果, 第3个表示上一个activity返回进入效果, 第4个表示的是activity finish()之后退出效果 比如有两个activity A和B, A上面有个按钮可以打开B, 点击按钮后,此时A执行第二个动画(android:activityOpenExitAnimation) B执行第一个动画(android:activityOpenEnterAnimation) 如此此时按下返回键,B退出,A显示,则此时A执行动画3(android:activityCloseEnterAnimation) B执行动画4(android:activityCloseExitAnimation) --> <style name="translate_bottom_top" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/act_switch_translate_bottom2screen</item> <item name="android:activityOpenExitAnimation">@anim/act_switch_translate_screen2top</item> <item name="android:activityCloseEnterAnimation">@anim/act_switch_translate_top2screen</item> <item name="android:activityCloseExitAnimation">@anim/act_switch_translate_screen2bottom</item> </style> <!-- 左边滑入右边滑出 --> <style name="activity_switch_translate_left_right" parent="AppTheme"> <item name="android:windowAnimationStyle">@style/translate_left_right</item> </style> <!-- 第一个表示新的activity创建进入效果, 第2个表示activity还没有finish()下退出效果, 第3个表示上一个activity返回进入效果, 第4个表示的是activity finish()之后退出效果 比如有两个activity A和B, A上面有个按钮可以打开B, 点击按钮后,此时A执行第二个动画(android:activityOpenExitAnimation) B执行第一个动画(android:activityOpenEnterAnimation) 如此此时按下返回键,B退出,A显示,则此时A执行动画3(android:activityCloseEnterAnimation) B执行动画4(android:activityCloseExitAnimation) --> <style name="translate_left_right" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/act_switch_translate_left2screen</item> <item name="android:activityOpenExitAnimation">@anim/act_switch_translate_screen2right</item> <item name="android:activityCloseEnterAnimation">@anim/act_switch_translate_right2screen</item> <item name="android:activityCloseExitAnimation">@anim/act_switch_translate_screen2left</item> </style> <!-- 右边滑入左边滑出 --> <style name="activity_switch_translate_right_left" parent="AppTheme"> <item name="android:windowAnimationStyle">@style/translate_right_left</item> </style> <!-- 第一个表示新的activity创建进入效果, 第2个表示activity还没有finish()下退出效果, 第3个表示上一个activity返回进入效果, 第4个表示的是activity finish()之后退出效果 比如有两个activity A和B, A上面有个按钮可以打开B, 点击按钮后,此时A执行第二个动画(android:activityOpenExitAnimation) B执行第一个动画(android:activityOpenEnterAnimation) 如此此时按下返回键,B退出,A显示,则此时A执行动画3(android:activityCloseEnterAnimation) B执行动画4(android:activityCloseExitAnimation) --> <style name="translate_right_left" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/act_switch_translate_right2screen</item> <item name="android:activityOpenExitAnimation">@anim/act_switch_translate_screen2left</item> <item name="android:activityCloseEnterAnimation">@anim/act_switch_translate_left2screen</item> <item name="android:activityCloseExitAnimation">@anim/act_switch_translate_screen2right</item> </style> </resources>
这个文件里定义了各种activity切换动画主题,大家需要运用哪种切换动画直接运用主题到appliation就行了,即在Manifest.xml文件里的application标签加上这么一个属性(比如想实现activity从顶部滑入底部滑出,应如下设置)
android:theme="@style/activity_switch_translate_top_bottom"
大家可以下载试下效果,下载后解压有一个anim文件夹入在res下即可,还有一个xml文件,activity_switch_anim.xml文件需要放在values文件夹下
源码下载
相关文章推荐
- 使用Google Analytics跟踪捕获JavaScript,AngularJS,jQuery的在线错误和异常
- 简单的Linux 驱动模块编译,加载过程
- 如何编译一个linux下的驱动模块(1)
- hibernate延迟加载(get和load的区别)
- Errors occurred during the build. Errors running builder 'JavaScript Validator' on project
- Windows下Redis的安装使用
- linux中安装软件
- Select和epoll的区别
- java 去掉html标签
- select、poll、epoll之间的区别
- 【dfs搜索】NOIP2011day3 Mayan游戏
- Round Robin 概念理解
- HDU 5358 First One( 2015 Multi-University Training Contest 6)
- 【转】2012年6月25 – 某欧美上市企业PHP工程师最新面试题
- 【DOM操作】DOM操作HTML中的Select标签
- 正则总结
- 快速幂取模法
- FOJ - 1021 - 飞船赛
- 50以内整除3切含有数字5的整数
- C#实现DevExpress本地化实例详解