Android中的动画具体解释系列【4】——Activity之间切换动画
2017-08-18 12:31
549 查看
前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画,这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景——Activity之间跳转动画。
一、定义动画资源
假设对Android中的动画不了解,请先阅读《Android中的动画具体解释系列【1】——逐帧动画》《Android中的动画具体解释系列【2】——飞舞的蝴蝶》《Android中的动画具体解释系列【3】——自己定义动画研究》。
进入动画(要启动的Activity)
当前Activity退出的时候从上图手机屏幕退出到-100%p的位置,要启动的Activity进入的时候从上图手机100%p的位置进入到0的位置,0的位置就是手机屏幕可见部分。
二、加入到Activity
1、使用overridePendingTransition方法
三、执行效果
(切换速度太快,延迟问题。以下展示效果和真实效果不符。參考一下,自己试一下)
四、其它切换动画
1、淡入淡出效果
一、定义动画资源
假设对Android中的动画不了解,请先阅读《Android中的动画具体解释系列【1】——逐帧动画》《Android中的动画具体解释系列【2】——飞舞的蝴蝶》《Android中的动画具体解释系列【3】——自己定义动画研究》。
进入动画(要启动的Activity)
<?xml version="1.0" encoding="utf-8"? > <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="200" /> </set>退出动画(要退出的Activity)
<? xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="200" /> </set>对上面代码的解释:
当前Activity退出的时候从上图手机屏幕退出到-100%p的位置,要启动的Activity进入的时候从上图手机100%p的位置进入到0的位置,0的位置就是手机屏幕可见部分。
二、加入到Activity
1、使用overridePendingTransition方法
intent = new Intent(RegistActivity.this, RegistChooseListActivity.class); intent.putExtra("type", Constant.REGIST_CHOOSE_XIAOQU); startActivityForResult(intent, Constant.REGIST_CHOOSE_XIAOQU); overridePendingTransition(R.anim.push_left_in, R.anim.push_left_out);2、在Theme中加入
<style name="AnimFade" parent="@android:style/Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/fade_in</item> <item name="android:activityOpenExitAnimation">@anim/hold</item> <item name="android:activityCloseEnterAnimation">@anim/fade_in</item> <item name="android:activityCloseExitAnimation">@anim/fade_out</item> </style> <style name="Anim_style" parent="android:Theme.NoTitleBar"> <item name="android:windowAnimationStyle">@style/AnimFade</item> </style>具体请看:http://blog.csdn.net/dawanganban/article/details/19925449
三、执行效果
(切换速度太快,延迟问题。以下展示效果和真实效果不符。參考一下,自己试一下)
四、其它切换动画
1、淡入淡出效果
<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="2000" />
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:fromXDelta="0" android:toXDelta="0" android:duration="2000" />2、从下往上推效果
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="2000"/> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="2000" /> </set>
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="0" android:toYDelta="-100%p" android:duration="2000"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="2000" /> </set>3、上下交错效果
<?xml version="1.0" encoding="UTF-8"?> <set android:interpolator="@android:anim/decelerate_interpolator" xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="2000" android:fromYDelta="100.0%p" android:toYDelta="0.0" /> </set>
<?xml version="1.0" encoding="UTF-8"?> <set android:interpolator="@android:anim/accelerate_interpolator" xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="2000" android:fromYDelta="0.0" android:toYDelta="100.0%p" /> </set>
相关文章推荐
- Android中的动画具体解释系列【4】——Activity之间切换动画
- 【Android进阶】Android中的动画详解系列 Activity之间切换动画 完美方案
- Android中的动画详解系列【4】——Activity之间切换动画
- Android中的动画详解系列【4】——Activity之间切换动画
- Android中的动画详解系列【4】——Activity之间切换动画
- Android 关于 Activity 之间的切换动画
- Android 关于 Activity 之间的切换动画
- Android:Activity之间切换时动画无效
- android中2个activity之间的切换动画效果(共12种)
- 【Android】Activity之间的动画切换
- android的 activity之间切换去除动画之原始activity不调用finish
- Android 关于 Activity 之间的切换动画
- 安卓手机卫士学习笔记系列——两个Activity之间切换动画效果overridependingtransition的使用
- <Android> 在Activity之间进行滑动效果的切换Anim动画
- Android 关于 Activity 之间的切换动画
- Android中的动画具体解释系列【1】——逐帧动画
- android动画-Activity之间切换动画
- Android中Activity页面之间动画切换之淡入淡出
- Android_实现activity之间切换的动画效果(overridePendingTransition)
- Android中的动画具体解释系列【2】——飞舞的蝴蝶