您可以创建自己的.xml 动画文件以淡入新的Activity
并淡出当前的Activity
:
淡入淡出.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="0.0" android:toAlpha="1.0"
android:duration="500" />
淡出.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:fromAlpha="1.0" android:toAlpha="0.0"
android:fillAfter="true"
android:duration="500" />
在这样的代码中使用它:(在你的内部Activity
)
Intent i = new Intent(this, NewlyStartedActivity.class);
startActivity(i);
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
上面的代码将淡出当前活动Activity
并淡入新开始Activity
,从而实现平滑过渡。
更新:@Dan J 指出使用内置的 Android 动画可以提高性能,我在做一些测试后确实发现了这种情况。如果您更喜欢使用内置动画,请使用:
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
请注意我引用android.R
而不是R
访问资源 ID。
更新:现在通常的做法是使用API 级别 19 中引入的 Transition 类执行转换。