我已经在应用程序中实现了深色主题。一切正常,当系统处于暗模式时,应用程序处于暗模式,反之亦然。
问题是品牌启动。我有2个可绘制文件:
黑暗:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item android:drawable="@color/splashColorDark"/>
<item>
<bitmap
android:src="@drawable/logo_branded"
android:mipMap="true"
android:gravity="center"/>
</item>
</layer-list>
和光:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item android:drawable="@color/splashColorLight"/>
<item>
<bitmap
android:src="@drawable/logo_branded"
android:mipMap="true"
android:gravity="center"/>
</item>
</layer-list>
为了使用品牌发布,我添加了此:
android:theme="@style/AppTheme.BrandedLaunchLight"
在我的AndroidManifest.xml
中
显然,在启用暗模式时,我无法设置暗品牌启动。我该怎么办?
只需在您的应用中使用DayNight
主题(Theme.MaterialComponents.DayNight
或Theme.AppCompat.DayNight
)。然后在资源文件夹上使用-night
限定符作为drawable-night
和values-night
。
这意味着您的可绘制对象在品牌发布会中使用相同的名称进行深色和浅色主题,但使用drawable-night
和drawable
文件夹。您可以对颜色进行相同的操作。代替使用@color/splashColorDark
和@color/splashColorLight
,使用单个名称splashColor
并将其放入values-night\colors.xml
和values\colors.xml