可以通过检测设备主题并相应地更改颜色,来实现自动更改文本颜色的效果。下面是实现方法的示例代码:
//获取当前设备主题
val nightModeFlags = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
//定义需要应用的颜色
val lightColor = ContextCompat.getColor(context, R.color.lightTextColor)
val darkColor = ContextCompat.getColor(context, R.color.darkTextColor)
//根据当前主题应用对应的颜色
val textColor = when (nightModeFlags) {
Configuration.UI_MODE_NIGHT_NO -> lightColor
Configuration.UI_MODE_NIGHT_YES -> darkColor
else -> lightColor
}
//将文本颜色设置为 textColor
textView.setTextColor(textColor)
上述代码中,首先通过获取当前设备主题的方式来确定需要应用的颜色。然后,根据当前主题应用对应的颜色,并将其应用于需要自动更改文本颜色的 TextView 上。