1、overridePendingTransition(args1, args2)

它需要两个参数,args1 前一个 Activity 的退出效果,args2 是后一个 Activity 的进入效果。 使用方法:

  1. Intent intent = new Intent(this, clzTo);
  2. this.startActivity(intent);
  3. this.finish();
  4. overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

2、setWindowAnimations(args)

这可也可以,但没有上一个好。使用方法:

  1. getWindow().setWindowAnimations(R.style.PopupAnimation);

几种常用的切换效果

1、淡入淡出

  1. overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);

2、由左向右滑入

  1. overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);

3、zoomin 和 zoomout

即类似 iphone 的进入和退出时的效果。
新建 zoomin.xml 文件:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:interpolator="@android:anim/decelerate_interpolator">
  4. <scale android:fromXScale="2.0"
  5. android:toXScale="1.0"
  6. android:fromYScale="2.0"
  7. android:toYScale="1.0"
  8. android:pivotX="50%p"
  9. android:pivotY="50%p"
  10. android:duration="@android:integer/config_mediumAnimTime" />
  11. </set>

新建 zoomout.xml 文件:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:interpolator="@android:anim/decelerate_interpolator"
  4. android:adjustment="top">
  5. <scale android:fromXScale="1.0"
  6. android:toXScale=".5"
  7. android:fromYScale="1.0"
  8. android:toYScale=".5"
  9. android:pivotX="50%p"
  10. android:pivotY="50%p"
  11. android:duration="@android:integer/config_mediumAnimTime" />
  12. <alpha Android:fromAlpha="1.0"
  13. android:toAlpha="0"
  14. android:duration="@android:integer/config_mediumAnimTime" />
  15. </set>

Java调用:

  1. overridePendingTransition(R.anim.zoomin, R.anim.zoomout);