Android 在主题为深色时更改品牌启动背景颜色
Android Change branded launch background colors when theme is dark
我在我的应用程序中实现了深色主题。一切正常,当系统处于暗模式时,应用程序处于暗模式,反之亦然。
问题是品牌 Launch.I 有 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
qualifier 作为 drawable-night
和 values-night
.
这意味着在深色和浅色主题的品牌发布中为您的绘图使用相同的名称,但使用
drawable-night
和 drawable
文件夹。
你可以对颜色做同样的事情。不要使用 @color/splashColorDark
和 @color/splashColorLight
,而是使用单个名称 splashColor
并将其放在 values-night\colors.xml
和 values\colors.xml
中
注。检查 official documentation:
Launch screens
If your app has a custom launch screen, it may need to be modified so that it reflects the selected theme.
Remove any hardcoded colors, for example any background colors pointing may be white. Use the ?android:attr/colorBackground
theme attribute instead.
Note that dark-themed android:windowBackground
drawables only work on Android Q.
我在我的应用程序中实现了深色主题。一切正常,当系统处于暗模式时,应用程序处于暗模式,反之亦然。
问题是品牌 Launch.I 有 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
qualifier 作为 drawable-night
和 values-night
.
这意味着在深色和浅色主题的品牌发布中为您的绘图使用相同的名称,但使用
drawable-night
和 drawable
文件夹。
你可以对颜色做同样的事情。不要使用 @color/splashColorDark
和 @color/splashColorLight
,而是使用单个名称 splashColor
并将其放在 values-night\colors.xml
和 values\colors.xml
注。检查 official documentation:
Launch screens
If your app has a custom launch screen, it may need to be modified so that it reflects the selected theme.
Remove any hardcoded colors, for example any background colors pointing may be white. Use the
?android:attr/colorBackground
theme attribute instead.Note that dark-themed
android:windowBackground
drawables only work on Android Q.