void
android.
app.
Activity.overridePendingTransition(
int enterAnim,
int exitAnim) 是android 2.0后的新属性,今天在使用之后在这里做做笔记用来备忘吧
首先,这个函数的使用环境通常是在startActivity(Intent intent)或者是在finish()之后,譬如
例1
Intent intent = new Intent(this, TwoActivity.class);
startActivity(intent);
overridePendingTransition(R.anim.in_right_left, R.anim.out_right_left);
overridePendingTransition的第一个参数enterAnim为Activity进入时的动画事件资源文件的ID,在上面的例1是TwoActivity进入时的参数 第二个参数exitAnim为this就是此Activity退出时的动画事件资源文件的ID。
R.anim.in_right_left的具体配置如下
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate android:fromXDelta="100%p" android:toXDelta="0%p" android:duration="600"/>
<alpha android:fromAlpha="0.3" android:toAlpha="1" android:duration="600"></alpha>
</set>
android:fromXDelta为进入前X坐标的位置 android:toXDelta为进入后X坐标的位置 由上可知此Activity是由屏幕的右边 100%(就是刚好在屏幕外)动画到左边屏幕0%(就是屏幕的起始地点)
例2
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.in_right_left, R.anim.out_right_left);
}
其他的。。。按此类推 想一下就知道怎么实现了
overridePendingTransition(R.anim.in_right_left, R.anim.out_right_left);
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator" >
<translate android:fromXDelta="100%p" android:toXDelta="0%p" android:duration="600"/>
<alpha android:fromAlpha="0.3" android:toAlpha="1" android:duration="600"></alpha>
</set>
public void finish() {
super.finish();
overridePendingTransition(R.anim.in_right_left, R.anim.out_right_left);
}