今天我在这里说下Activity切换动画。Activity切换动画指的是Activity跳转的动画,分别分为:一个activity退出的动画,另一个activity进入的动画。
在android2.0之后,就有了一个方法来给我们实现这种效果--overridePendingTransition(int,int)。从这个方法中,我们可以看出overridePendingTransition方法需要我们传递2个参数,第一个参数是第二个Activity进入的动画,第二个参数是第一个Activity退出的动画。话不多说了,我们直接来看代码。
1. anim文件下的代码
(1).in.xml代码--第二个Activity进入的动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="3000"
/>
</set>
(2).2.out.xml代码--第一个Activity退出的动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="3000"
/>
</set>
2. MainActivity代码
(1).Activity1布局文件代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.Tween_Animation.Alpha_MainActivity" >
<Button
android:id="@+id/button_scale"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_stringScaleAnimation" />
<LinearLayout
android:gravity="center"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageview_scale"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
</LinearLayout>
</LinearLayout>
(2).Activity2的布局代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:background="@drawable/ic_launcher"
/>
</LinearLayout>
(3). MainActivity的代码
package com.example.Demo4;
import com.example.androidanimation.R;
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;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener{
private Button button = null;
private ImageView imageview = null;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button_scale);
imageview = (ImageView) findViewById(R.id.imageview_scale);
button.setOnClickListener(this);
}
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,MainActivity2.class);
startActivity(intent);
overridePendingTransition(R.anim.in, R.anim.out);
}
}
(4).MainActivity2的代码
package com.example.Demo4;
import com.example.androidanimation.R;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity2 extends Activity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}