主要代码是通过下面这一行
//第一个参数为启动另一个activity时动画效果,第二个参数为当前activity退出时动画效果 ,此代码紧跟在startActivity后面。
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
下面通过例子来实现:
声明一个MainActivity.java和一个OtherActivity.java,然后从MainActivity跳转到OtherActivity.java
下面是MainActivity.java的代码
package com.example.activityintent;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent=new Intent();
intent.setClass(MainActivity.this,OtherActivity.class);
startActivity(intent);
//第一个参数为启动另一个activity时动画效果,第二个参数为当前activity退出时动画效果
//实现淡入淡出的效果
//overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);
//实现由左向右滑入的效果
//overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
//下面的效果是自己定义的。需要在res/anim文件夹下自己定义zoomin.xml 和zoomout.xml,
overridePendingTransition(R.anim.zoomin,R.anim.zoomout);
}
});
}
}
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:zAdjustment="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>
下面还有两个效果忘了是从哪位大神的博客上看的了,一并写在这里了。
fade.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="@android:integer/config_longAnimTime" />
hold.xml
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXDelta="0" android:toXDelta="0"
android:duration="@android:integer/config_longAnimTime" />