要实现Android暗黑模式行为,可以按照以下步骤进行:
uiMode
属性,以指定应用程序的主题样式:
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 检查是否为暗黑模式
int nightModeFlags = getResources().getConfiguration().uiMode
& Configuration.UI_MODE_NIGHT_MASK;
// 根据模式设置主题样式
switch (nightModeFlags) {
case Configuration.UI_MODE_NIGHT_YES:
setTheme(R.style.AppTheme);
break;
case Configuration.UI_MODE_NIGHT_NO:
default:
setTheme(R.style.AppTheme.Dark);
break;
}
setContentView(R.layout.activity_main);
...
}
在上述代码中,我们首先使用getResources().getConfiguration().uiMode
获取当前系统的模式。然后根据模式设置Activity的主题样式,如果是暗黑模式,使用AppTheme样式;如果是日间模式,使用AppTheme.Dark样式。
这样,当系统的主题模式发生变化时,Activity会自动切换到对应的主题样式,实现暗黑模式行为。