本文讲解的是在java代码里面设置Activity切换动画定义,和使用方法。
1、定义动画
从右往左切入动画:
anim/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" >
<translate
android:duration="300"
android:fromXDelta="100%p"
android:toXDelta="0%p" />
</set>
anim/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" >
<translate
android:duration="300"
android:fromXDelta="0%p"
android:toXDelta="100%p" />
</set>
进入时用法:
Intent intent = new Intent(FirstActivity.this,SecondActivity.class)
startActivity(intent);
overridePendingTransition(R.anim.zoomin,R.anim.zoomout);
要点:overridePendingTransition放在startActivity后面
退出时的用法:
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
overridePendingTransition(R.anim.zoomin,R.anim.zoomout);
}
});
要点:overridePendingTransition放在finish()后面
这里存在一个问题,如果我是按手机上的返回键退出activity时,我在哪里放overridePendingTransition呢?
需要override 当前Activity的finish方法,在里面加上overridePendingTransition方法。
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.slide_left_in, R.anim.slide_right_out);
}