要检测用户的操作系统主题是暗黑模式还是亮色模式,可以使用以下代码示例:
import android.content.res.Configuration
fun isDarkModeEnabled(configuration: Configuration): Boolean {
return configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES
}
然后在适当的地方调用这个方法来检测主题类型:
val configuration = resources.configuration
val isDarkMode = isDarkModeEnabled(configuration)
if (isDarkMode) {
// 执行暗黑模式下的操作
} else {
// 执行亮色模式下的操作
}
请注意,这个方法只适用于 Android 10(API 级别 29)及以上的版本。在 Android 9(API 级别 28)及以下的版本中,无法直接检测主题类型。在这种情况下,你可以考虑使用第三方库,如 AppCompat 库的 ThemeUtils
类来检测主题类型。