Android活动进出场动画
16lz
2021-01-26
动画代码解读
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="100" android:fromXDelta="-100%p" android:interpolator="@android:anim/decelerate_interpolator" android:toXDelta="0%p" />set>
从左边出来到正常显示,interpolator表示速度以根号X形式变化。
应用(在哪里声明都可以,推荐在intent附近和重写finish里)
overridePendingTransition(R.anim.entry_in,R.anim.register_out);
第一个参数是 新的活动打开的动画,第二个参数是 这个活动关闭的动画
效果
全部代码
entry_in
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="100" android:fromXDelta="-100%p" android:interpolator="@android:anim/decelerate_interpolator" android:toXDelta="0%p" />set>
entry_out
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="100" android:fromXDelta="0%p" android:interpolator="@android:anim/decelerate_interpolator" android:toXDelta="-50%p" />set>
register_in
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="100" android:fromXDelta="100%p" android:interpolator="@android:anim/decelerate_interpolator" android:toXDelta="0%p" />set>
register_out
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="100" android:fromXDelta="0%p" android:interpolator="@android:anim/decelerate_interpolator" android:toXDelta="100%p" />set>
使用
entry activity里
case R.id.open_register: startActivity(RegisterActivity.class); overridePendingTransition(R.anim.register_in,R.anim.entry_out); break;
register activity里
@Overridepublic void finish() { super.finish(); overridePendingTransition(R.anim.entry_in,R.anim.register_out);}
当然这样声明那么java代码就会太过冗余,在注册文件里声明是最好
不过style中不能同时继承Animation.Activity和Theme.AppCompat.Light.NoActionBar,就很麻烦
更多相关文章
- 小游戏Mixed Color源代码分享
- android中配置文件property的用途以及使用
- android 实现自定义卫星菜单
- 模拟实现android 文件管理器功能(循环打开文件夹)
- Activity的创建
- Android图形动画概述
- Eclipse中跟踪调试Android(安卓)Framework源代码
- Appium+Python实现iOS自动化测试~环境搭建
- Android基于UDP的局域网聊天通信(有完整Demo)