【发布时间】:2021-02-18 10:59:40
【问题描述】:
我想在主屏幕上为我的应用添加一个按钮,这样当您单击此按钮时,就会出现暗模式。暗模式已经设置好,一切都在运行。但是,仅当此应用程序的用户也使用他的手机处于黑暗模式时。但我希望每个人都有机会自己在应用程序中切换到暗模式。我希望你能理解我的问题我的意思,我的英语不是那么好抱歉
【问题讨论】:
标签: android xml button apk darkmode
我想在主屏幕上为我的应用添加一个按钮,这样当您单击此按钮时,就会出现暗模式。暗模式已经设置好,一切都在运行。但是,仅当此应用程序的用户也使用他的手机处于黑暗模式时。但我希望每个人都有机会自己在应用程序中切换到暗模式。我希望你能理解我的问题我的意思,我的英语不是那么好抱歉
【问题讨论】:
标签: android xml button apk darkmode
使用 API AppCompatDelegate.setDefaultNightMode()
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
您会发现 Google 的 Chris Banes 的这篇文章很有用:
https://medium.com/androiddevelopers/appcompat-v23-2-daynight-d10f90c83e94
您应该考虑通过上述文章中所述的“设置”按钮添加应用偏好
【讨论】:
我如何理解您已经拥有 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
【讨论】:
正如您已经定义的,DarkMode 可能是可绘制的。所以你可以通过下面的代码来切换背景。
if (true) {
button.setBackgroundResource(R.drawable.darkmode);
}else {
button.setBackgroundResource(R.drawable.defaultmode);
}
【讨论】: