android系统换动画,Activity之间切换动画

前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自定义动画,这一篇我们来看看如何将Android中的动画运用到实际开发中的一个场景——Activity之间跳转动画。

一、定义动画资源

如果对Android中的动画不了解,请先阅读前面几页的《Android中的动画详解系列【1】——逐帧动画》《Android中的动画详解系列【2】——飞舞的蝴蝶》《Android中的动画详解系列【3】——自定义动画研究》。

进入动画(要启动的Activity)

android:fromXDelta="100%p"

android:toXDelta="0"

android:duration="200"/>

android:fromXDelta="100%p"

android:toXDelta="0"

android:duration="200" />

退出动画(要退出的Activity)

android:fromXDelta="0"

android:toXDelta="-100%p"

android:duration="200"/>

android:fromXDelta="0"

android:toXDelta="-100%p"

android:duration="200" />

对上面代码的解释:

189ad6b2a0bf3a0d04ddb40fb9e0653e.png

当前Activity退出的时候从上图手机屏幕退出到-100%p的位置,要启动的Activity进入的时候从上图手机100%p的位置进入到0的位置,0的位置就是手机屏幕可见部分。

二、添加到Activity

1、使用overridePendingTransition方法

intent =newIntent(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);

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中添加

@anim/fade_in

@anim/hold

@anim/fade_in

@anim/fade_out

@style/AnimFade

@anim/fade_in

@anim/hold

@anim/fade_in

@anim/fade_out

@style/AnimFade

三、运行效果

(切换速度太快,延迟问题,下面展示效果和真实效果不符,参考一下,自己试一下)

a6ab08ae7249856b79813b4410cfaa44.gif

四、其他切换动画

1、淡入淡出效果

android:interpolator="@android:anim/accelerate_interpolator"

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

android:duration="2000"/>

android:interpolator="@android:anim/accelerate_interpolator"

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

android:duration="2000" />

android:interpolator="@android:anim/accelerate_interpolator"

android:fromXDelta="0"android:toXDelta="0"

android:duration="2000"/>

android:interpolator="@android:anim/accelerate_interpolator"

android:fromXDelta="0" android:toXDelta="0"

android:duration="2000" />

2、从下往上推效果

3、上下交错效果

xmlns:android="http://schemas.android.com/apk/res/android">

android:fromYDelta="100.0%p"android:toYDelta="0.0"/>

xmlns:android="http://schemas.android.com/apk/res/android">

android:fromYDelta="100.0%p" android:toYDelta="0.0" />

xmlns:android="http://schemas.android.com/apk/res/android">

android:fromYDelta="0.0"android:toYDelta="100.0%p"/>

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值