-1

我想在主屏幕上为我的应用程序添加一个按钮,这样当您单击此按钮时,就会出现暗模式。暗模式已经设置好,一切都在运行。但是,仅当此应用程序的用户也使用他的手机处于黑暗模式时。但我希望每个人都有机会自己在应用程序中切换到暗模式。我希望你能理解我的问题我的意思,我的英语不是那么好所以抱歉

4

3 回答 3

2

使用 API AppCompatDelegate.setDefaultNightMode()

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);

您会发现 Google 的 Chris Banes 的这篇文章很有用:

https://medium.com/androiddevelopers/appcompat-v23-2-daynight-d10f90c83e94

您应该考虑通过上面文章中所述的“设置”按钮添加应用首选项

于 2020-11-05T19:02:43.720 回答
1

我如何理解您已经拥有 DarkMode 样式和 Default 样式。您可以在 MainActivity 上为此添加一个 Switch,并将您的 darkMode 状态保存在 SharedPreferences 类中。做一个条件:

if (Switch is enabled) {
setTheme(R.style.darkMode) 
}else {
setTheme(R.style.defaultMode)  
}

有关更多详细信息,您可以在 youtube 上观看有关如何执行此操作的一些教程。 https://www.youtube.com/watch?v=xqY7Yu5C8pg

于 2020-11-05T17:47:41.540 回答
1

正如您已经定义的 DarkMode 可能是可绘制的。所以你可以通过下面的代码来切换背景。

if (true) {
     button.setBackgroundResource(R.drawable.darkmode);
}else {
     button.setBackgroundResource(R.drawable.defaultmode);
}
于 2020-11-05T18:00:14.317 回答