我目前正在开发一个 Android 应用程序,但我的启动 Activity 遇到了一些问题。我希望我的主要 Activity 从我的启动 Activity 中淡出,而不是从黑屏。我的启动画面和主要 Activity 都使用相同的背景图像,所以如果我进行淡入淡出/淡入淡出组合,它看起来很奇怪,因为在过渡期间背景有点淡化。
这里的想法是我必须有我的标志的版本:正常和发光。我希望我的主要 Activity 淡入淡出,这样我的发光标志就会取代我的正常标志,从而产生一个整洁的小“开启”效果。以下代码从黑屏淡入,并不理想。
/**
* Pause Activity
*/
@Override
protected void onPause()
{
super.onPause();
finish();
overridePendingTransition(android.R.anim.fade_in, 0);
}
编辑:
创建我自己的淡出动画以保留 1.0 alpha 级别(从 1.0 到 1.0)并将 android:fillAfter="true"
添加到我的启动动画集解决了这个问题。
最佳答案
这是关于事物的顺序。这是一个在 3 秒后淡入下一个 Activity 的示例:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//Create an intent that will start the main activity.
Intent mainIntent = new Intent(SplashActivity.this, MainMenuActivity.class);
SplashActivity.this.startActivity(mainIntent);
//Finish splash activity so user cant go back to it.
SplashActivity.this.finish();
//Apply splash exit (fade out) and main entry (fade in) animation transitions.
overridePendingTransition(R.anim.mainfadein, R.anim.splashfadeout);
}
}, 3000);
注意这里有两个动画淡入淡出。
mainfadein.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="700" />
splashfadeout.xml
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top"
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="700" />
关于android - 在 Android 中从以前的 Activity 淡入 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9150054/