工程目录:src\ch09\ch09_activity_animation 广州网站设计
默认情况下两个Activity之间的切换是直接显示另一个Activity,为了使程序看起来更加有趣,可以在Activity之间切换时加上动画效果。
如果在startActivity或finish后调用Activity.overridePendingTransition方法,并指定显示和关闭Activity的动画效果,就会以动画方式显示和关闭Activity。overridePendingTransition方法的定义如下:
广州网站建设
- public void overridePendingTransition(int enterAnim, int exitAnim);
该方法有两个参数,都是动画资源ID,其中enterAnim表示显示Activity时的动画,exitAnim表示关闭Activity时的动画。这里的动画资源是保存在res\anim目录中的xml动画文件。关于动画文件的内容将在后面详细讲解,在这里只要知道这些动画的原理和Flash类似,都称为补间动画。也就是说,只要定义起始和结束的状态以及动画轨迹,系统就会自动生成动画的中间状态。在本例中我们使用了2个动画文件:fade.xml和hyperspace.xml,分别表示淡入淡出和立体飞出的效果。广州网站设计
下面的代码分别以淡入淡出和立体飞出的效果显示一个Activity。
淡入淡出效果
广州网站建设
- Intent intent = new Intent(this, AnimationActivity.class);
- startActivity(intent);
- overridePendingTransition(R.anim.fade, R.anim.fade);
立体飞出效果
- Intent intent = new Intent(this, AnimationActivity.class);
- startActivity(intent);
- overridePendingTransition(R.anim.hyperspace, R.anim.hyperspace);
如果overridePendingTransition在finish之后调用,系统会以动画方式关闭Activity。下面的代码以淡入淡出效果来关闭Activity。
- Intent intent = new Intent(this, AnimationActivity.class);
- finish();
- overridePendingTransition(R.anim.fade, R.anim.fade);



