要在浅色和深色主题中设置不同的颜色,可以通过在代码中使用主题资源来实现。下面是一个示例代码,演示了如何在浅色和深色主题中设置不同的颜色:
// 获取ActionBar/Toolbar实例
ActionBar actionBar = getSupportActionBar();
// 检查当前主题是否为深色主题
boolean isDarkTheme = isDarkTheme();
// 根据主题设置不同的颜色
if (isDarkTheme) {
// 设置深色主题的颜色
actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLACK));
actionBar.setTitleTextColor(Color.WHITE);
} else {
// 设置浅色主题的颜色
actionBar.setBackgroundDrawable(new ColorDrawable(Color.WHITE));
actionBar.setTitleTextColor(Color.BLACK);
}
// 检查当前主题是否为深色主题的方法
private boolean isDarkTheme() {
int currentNightMode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
return currentNightMode == Configuration.UI_MODE_NIGHT_YES;
}
在这个示例中,我们首先获取ActionBar/Toolbar的实例,然后使用isDarkTheme()
方法检查当前主题是否为深色主题。根据主题的不同,我们可以使用setBackgroundDrawable()
方法设置不同的背景颜色,并使用setTitleTextColor()
方法设置不同的标题颜色。
请注意,isDarkTheme()
方法中的代码可以根据您的项目需要进行修改,以适应不同的主题设置。另外,这个示例假设您已经在布局文件中正确地设置了ActionBar/Toolbar。