在安卓夜间模式下自动减小文本大小,可以通过设置文本的字体大小来实现。以下是一个示例代码,演示了如何根据当前是否为夜间模式来自动调整文本大小:
// 获取当前系统的夜间模式设置
int nightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
// 根据夜间模式设置文本大小
if (nightMode == Configuration.UI_MODE_NIGHT_YES) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16); // 设置夜间模式下的文本大小
} else {
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20); // 设置非夜间模式下的文本大小
}
在上述代码中,我们首先通过getResources().getConfiguration().uiMode
方法获取当前系统的夜间模式设置。然后使用位掩码Configuration.UI_MODE_NIGHT_MASK
来获取夜间模式的状态。如果返回值为Configuration.UI_MODE_NIGHT_YES
,则表示当前为夜间模式,我们可以调整文本大小为16sp;否则,表示为非夜间模式,我们可以将文本大小设置为20sp。
你可以将上述代码放在适当的位置,例如在onCreate()
方法中或是在切换夜间模式的回调方法中,以实现自动调整文本大小的功能。