Android 闪屏灰色过渡到 activity
Android splash screen gray transition to activity
我目前正在开发一个 Android 应用程序,我添加了一个在开头显示徽标的初始屏幕。
为了确保启动画面停留正确的时间,我使用了将主题应用到我的启动画面的方法 activity 然后,在相关的 Java class,我开始主activity(它有一个白色的背景,和启动画面一样)。初始屏幕正确显示并停留适当的时间,但是,当转换到主屏幕 activity 时,应用程序显示灰色屏幕大约 1 秒钟,然后显示完全加载的主屏幕 activity。你知道可能是什么问题吗?
这是我正在使用的 style.xml 文件中的代码:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/Trippy_primary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/Trippy_orange</item>
<item name="android:textColorPrimary">@color/TrippyGray</item>
<item name="android:colorBackground">@color/white</item>
<item name="android:windowAnimationStyle">@null</item>
</style>
<style name="SplashTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/Trippy_primary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/Trippy_orange</item>
<item name="android:textColorPrimary">@color/TrippyGray</item>
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:windowAnimationStyle">@null</item>
</style>
</resources>
而这是清单文件中对应的 activity 标签:
<activity android:name=".SplashScreen" android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这是相关的 activity 代码:
public class SplashScreen extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
startActivity(new Intent(this, TrippyList.class).putExtra("comingActivity", false));
finish();
}
}
感谢您的帮助:)
试试这个对我有用。
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
CountDownTimer countDownTimer;
countDownTimer= new CountDownTimer(2500, 500) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
startActivity(new Intent(SplashScreen.this, TrippyList.class));
overridePendingTransition(0,0);
finish();
}
}.start();
}
其实我发现了问题。我还在应用程序中实现了暗模式,当应用程序启动时处理正确模式检测的代码仍在主要 activity 中。在初始屏幕和主 activity 之间的交易中看到的背景较暗可能是因为我的 android 系统当前处于黑暗模式。
在启动画面中添加 dark/light 模式设置解决了这个问题。
我目前正在开发一个 Android 应用程序,我添加了一个在开头显示徽标的初始屏幕。
为了确保启动画面停留正确的时间,我使用了将主题应用到我的启动画面的方法 activity 然后,在相关的 Java class,我开始主activity(它有一个白色的背景,和启动画面一样)。初始屏幕正确显示并停留适当的时间,但是,当转换到主屏幕 activity 时,应用程序显示灰色屏幕大约 1 秒钟,然后显示完全加载的主屏幕 activity。你知道可能是什么问题吗?
这是我正在使用的 style.xml 文件中的代码:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/Trippy_primary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/Trippy_orange</item>
<item name="android:textColorPrimary">@color/TrippyGray</item>
<item name="android:colorBackground">@color/white</item>
<item name="android:windowAnimationStyle">@null</item>
</style>
<style name="SplashTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/Trippy_primary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/Trippy_orange</item>
<item name="android:textColorPrimary">@color/TrippyGray</item>
<item name="android:windowBackground">@drawable/splash_screen</item>
<item name="android:windowAnimationStyle">@null</item>
</style>
</resources>
而这是清单文件中对应的 activity 标签:
<activity android:name=".SplashScreen" android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这是相关的 activity 代码:
public class SplashScreen extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
startActivity(new Intent(this, TrippyList.class).putExtra("comingActivity", false));
finish();
}
}
感谢您的帮助:)
试试这个对我有用。
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_screen);
CountDownTimer countDownTimer;
countDownTimer= new CountDownTimer(2500, 500) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
startActivity(new Intent(SplashScreen.this, TrippyList.class));
overridePendingTransition(0,0);
finish();
}
}.start();
}
其实我发现了问题。我还在应用程序中实现了暗模式,当应用程序启动时处理正确模式检测的代码仍在主要 activity 中。在初始屏幕和主 activity 之间的交易中看到的背景较暗可能是因为我的 android 系统当前处于黑暗模式。
在启动画面中添加 dark/light 模式设置解决了这个问题。