我正在尝试使用这篇文章为 android 应用程序创建启动画面:Splash Screens the Right Way。正如文章所说,我创建了具有两层的 LayerDrawable:背景位图和徽标(也是位图)。例如,徽标需要位于屏幕底部,缩进 32dp。这是我的可绘制对象:
<item
android:drawable="@drawable/splash_image" />
<item
android:id="@+id/logo"
android:bottom="@dimen/margin_splash">
<bitmap
android:gravity="bottom|center"
android:src="@drawable/logo_green" />
</item>
android:windowBackground
我在我的启动活动主题中将这个可绘制对象指定为参数。我还希望在支持此功能(API >=19)的设备上显示启动画面时有透明的状态栏,所以我为不同的 android 版本创建了两个资源文件,在 values-v19\styles.xml 中我指出标志android:windowTranslucentStatus
为真的。这是我的values/styles.xml
和values-v19/styles.xml
:
值/样式.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/bg_splash</item>
</style>
</resources>
和
values-v19/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/bg_splash</item>
<item name="android:windowTranslucentStatus">true</item>
</style>
</resources>
但是在一些带有 Soft NavigationBar 的 Android 设备上,我的标志被它重叠了。
我试图将标志指向错误但没有成功。android:windowTranslucentNavigation
有什么方法可以使 Android Soft NavigationBar 与透明状态栏一起透明,或者我需要在我的启动活动的 onCreate 方法中检测 Soft NavigationBar 的可用性,并通过将徽标的底部缩进添加到 NavigationBar 的高度来更新我的 LayerDrawable?
谢谢。