我查看了 Android API 演示,建议您应该使用“overridePendingTransition()”方法,它设置传入活动的动画和传出活动的动画。
该方法应该在 startActivity() 之后或 finish() 之后添加:
Intent launch_intent = new Intent("android.intent.action.MAIN");
launch_intent.addCategory("android.intent.category.LAUNCHER");
launch_intent.setComponent(new ComponentName(packageName, name));
activity.startActivity(launch_intent);
overridePendingTransition(R.anim.zoom_enter, R.anim.zoom_exit);
过渡是标准的 android 动画,例如 zoom_enter 将是这样的:
<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>
如果您还想在您的活动关闭时设置动画,例如当用户按下返回或主页按钮时,您应该将 overridePendingTransition() 添加到 onPause() 方法。
如果您想在其他应用程序启动您的活动时设置动画,请在 super.onCreate() 之前添加 overridePendingTransition()。