我们目前正在通过新的 Splashscreen API 实现闪屏。我们遵循迁移指南。背景颜色设置正确(通过
windowSplashScreenBackground
),但图标在模拟器和物理设备上均不可见。
build.gradle
android {
compileSdkVersion 31
...
}
dependencies {
implementation "androidx.core:core-splashscreen:1.0.0-alpha01"
...
}
values-v31/themes.xml
<style name="AppTheme" parent="Theme.SplashScreen">
<item name="postSplashScreenTheme">@style/AppThemeCompat</item>
<item name="windowSplashScreenBackground">@android:color/black</item>
<item name="windowSplashScreenAnimatedIcon">@mipmap/ic_launcher</item>
<item name="windowSplashScreenAnimationDuration">200</item>
</style>
AndroidManifest.xml
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
...
</application>
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen()
...
}
我直接回答这个问题,因为我们在一两个小时内找到了问题的解决方案,可以从其他开发人员那里节省下来:
从 Android Studio 启动应用程序时,Splashscreen API 设置的图标不起作用。如果应用程序关闭然后重新启动,图标将正确显示。
由于该库还处于早期 alpha 状态,因此可能存在此错误,据称将在 Splashscreen API 的未来版本中修复。
这里的实现“androidx.core:core-splashscreen:1.0.1”也有同样的问题 安卓12真机。但它在模拟器 api 34 像素设备上正确显示