给Activity切换加入动画

在startActivity或finish()后,调用overridePendingTransition方法,可以加入动画效果。例如:

使用Android自带的淡入淡出:android.R.anim.fade_in,android.R.anim.fade_out。

使用Android自带的由左向右滑入的效果:android.R.anim.slide_in_left,android.R.anim.slide_out_right。

也可以自定义动画效果。

下面用一个简单的示例来演示,代码如下:

MainActivity:

[java][/java] view plaincopy

  1. package com.home.activity;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;
  8. import com.home.R;
  9. public class MainActivity extends Activity {
  10.     private Button turnBtn;
  11.     @Override
  12.     protected void onCreate(Bundle savedInstanceState) {
  13.         super.onCreate(savedInstanceState);
  14.         setContentView(R.layout.main);
  15.         turnBtn = (Button) findViewById(R.id.main_btn_turn);
  16.         turnBtn.setOnClickListener(new OnClickListener() {
  17.             @Override
  18.             public void onClick(View v) {
  19.                 Intent intent = new Intent(MainActivity.this,
  20.                         SecondActivity.class);
  21.                 startActivity(intent);
  22.                 // 第一个参数是目标Activity进入时的动画,第二个参数是当前Activity退出时的动画
  23.                 overridePendingTransition(R.anim.slide_in_left,
  24.                         R.anim.slide_out_right);
  25.             }
  26.         });
  27.     }
  28. }

MainActivity的布局文件就一个按钮,在此省略。至于SecondActivity自己定义即可,这里就不给出了。
slide_in_left动画:

[html][/html] view plaincopy

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <set xmlns:android=”http://schemas.android.com/apk/res/android” >
  3.     <translate
  4.         android:duration=”3000″
  5.         android:fromXDelta=”-50%p”
  6.         android:toXDelta=”0″ />
  7.     <alpha
  8.         android:duration=”3000″
  9.         android:fromAlpha=”0.0″
  10.         android:toAlpha=”1.0″ />
  11. </set>

slide_out_right动画:

[html][/html] view plaincopy

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <set xmlns:android=”http://schemas.android.com/apk/res/android” >
  3.     <translate
  4.         android:duration=”3000″
  5.         android:fromXDelta=”0″
  6.         android:toXDelta=”50%p” />
  7.     <alpha
  8.         android:duration=”3000″
  9.         android:fromAlpha=”1.0″
  10.         android:toAlpha=”0.0″ />
  11. </set>

标签