Activity切换动画
2016-12-25 本文已影响227人
灰灰手记
整理旧笔记
1、overridePendingTransition(args1, args2)
它需要两个参数,args1 前一个 Activity 的退出效果,args2 是后一个 Activity 的进入效果。 使用方法:
Intent intent = new Intent(this, clzTo);
this.startActivity(intent);
this.finish();
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
2、setWindowAnimations(args)
这可也可以,但没有上一个好。使用方法:
getWindow().setWindowAnimations(R.style.PopupAnimation);
几种常用的切换效果
1、淡入淡出
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
2、由左向右滑入
overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
3、zoomin 和 zoomout
即类似 iphone 的进入和退出时的效果。
新建 zoomin.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<scale android:fromXScale="2.0"
android:toXScale="1.0"
android:fromYScale="2.0"
android:toYScale="1.0"
android:pivotX="50%p"
android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
新建 zoomout.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:adjustment="top">
<scale android:fromXScale="1.0"
android:toXScale=".5"
android:fromYScale="1.0"
android:toYScale=".5"
android:pivotX="50%p"
android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
<alpha Android:fromAlpha="1.0"
android:toAlpha="0"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
Java调用:
overridePendingTransition(R.anim.zoomin, R.anim.zoomout);