我在我的应用程序中实现了深色主题。一切正常,当系统处于深色模式时,应用程序也处于深色模式,反之亦然。
问题是品牌启动。我有 2 个可绘制文件:
Dark:
<?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"
in my AndroidManifest.xml
显然,这样做我无法在黑暗模式处于活动状态时设置黑暗品牌启动。我应该怎么办?
只需使用一个DayNight
theme (Theme.MaterialComponents.DayNight
or Theme.AppCompat.DayNight
)在您的应用程序中。
然后使用-night预选赛 https://developer.android.com/guide/topics/resources/providing-resources.html#NightQualifier在您的资源文件夹中作为drawable-night
and values-night
.
这意味着在深色和浅色主题的品牌发布中为您的可绘制对象使用相同的名称,但使用drawable-night
and drawable
folder.
您可以对颜色执行相同的操作。而不是使用@color/splashColorDark
and @color/splashColorLight
使用单一名称splashColor
并将其放入values-night\colors.xml
and values\colors.xml
Note。检查官方文档 https://developer.android.com/guide/topics/ui/look-and-feel/darktheme#launch_screens:
启动屏幕
如果您的应用程序有自定义启动屏幕,则可能需要对其进行修改以反映所选主题。
删除任何硬编码颜色,例如任何指向的背景颜色可能是白色。使用?android:attr/colorBackground
相反主题属性.
注意黑暗主题 android:windowBackground
绘图仅适用于 Android Q.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)