android自定义过渡动画,11.自定义过渡动画

本文介绍了如何在Android中实现自定义Activity和Fragment的过渡动画,包括使用`overridePendingTransition()`、`setCustomAnimations()`以及在主题中声明全局动画。通过XML定义旋转和淡入淡出动画,并在不同场景下正确应用。
摘要由CSDN通过智能技术生成

11.1 问题

应用程序需要自定义Activity切换或Fragment切换时产生的过渡动画。

11.2 解决方案

(API Level 5)

要修改Activity间的过渡动画,可以使用overridePendingTransition()API进行某次切换时的动画,或者在应用程序的主题中声明自定义动画值来进行更多全局设置。要修改Fragment间的过渡动画,可以使用onCreateAnimation()或onCreateAnimator()API方法。

11.3 实现机制

1.Activity

要自定义Activity切换时的过渡动画,可以考虑4种动画:打开一个新Activity时的进入动画和退出动画,以及当前Activity关闭时的进入动画和退出动画。每种动画都会应用到过渡动画中所涉及的两个Activity之一。例如,当打开一个新的Activity时,当前Activity将会运行“打开退出”动画,而新Activity会运行“打开进入”动画。由于这些动画都是同时运行的,因此动画间应该是互补的,否则看起来会不太协调。以下四段代码演示了这4种动画。

res/anim/activity_open_enter.xml

android:fromDegrees="90" android:toDegrees="0"

android:pivotX="0%" android:pivotY="0%"

android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"

android:duration="500" />

android:fromAlpha="0.0" android:toAlpha="1.0"

android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"

android:duration="500" />

res/anim/activity_open_exit.xml

android:fromDegrees="0" android:toDegrees="-90"

android:pivotX="0%" android:pivotY="0%"

android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"

android:duration="500" />

android:fromAlpha="1.0" android:toAlpha="0.0"

android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"

android:duration="500" />

res/anim/activity_close_enter.xml

android:fromDegrees="-90" android:toDegrees="0"

android:pivotX="0%p" android:pivotY="0%p"

android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"

android:duration="500" />

android:fromAlpha="0.0" android:toAlpha="1.0"

android:fillEnabled="true" android:fillBefore="true" android:fillAfter="true"

android:duration="500" />

res/anim/activity_close_exit.xml

android:fromDegrees="0" android:toDegrees="90"

android:pivotX="0%p" android:pivotY="0%p"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值