您可以创建自己的.xml动画文件以淡入新Activity
淡出当前淡出Activity
:
fade_in.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" />
fade_out.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类执行转换。
overridePendingTransition(android.R.anim.fadein, android.R.anim.fadeout);
查看这些文件还可以提示您如何改善自定义动画(例如,使上一次淡入的时间长于淡出的时间)。