我正在制作一个Android应用。我为黑暗模式制作了另一个UI。所以这就是我所需要的;该应用程序将在当地时间自动切换为深色主题。例如,当当地时间太阳下山时,应用程序将切换为黑暗模式。
或另一种选择是在一天中的预设时间切换到黑暗模式。希望你理解我的问题。如果有人知道,请帮助我,如果可能的话,我宁愿选择第一种方法。预先感谢。
也许您可以看看AppCompatDelegate.setDefaultNightMode()
您只需通过DayNight的父级定义主题:
<style name="MyTheme" parent="Theme.AppCompat.DayNight">
<!-- Blah blah -->
</style>
以及每个样式:
<style name="Theme.AppCompat.DayNight"
parent="Theme.AppCompat.Light" />
或
<style name="Theme.AppCompat.DayNight"
parent="Theme.AppCompat" />
然后您可以致电:AppCompatDelegate.setDefaultNightMode()
其中之一:
MODE_NIGHT_NO. Always use the day (light) theme.
MODE_NIGHT_YES. Always use the night (dark) theme.
MODE_NIGHT_FOLLOW_SYSTEM (default). This setting follows the system’s setting, which on Android Q and above is a system setting (more on this below).
MODE_NIGHT_AUTO_BATTERY. Changes to dark when the device has its ‘Battery Saver’ feature enabled, light otherwise.
MODE_NIGHT_AUTO_TIME & MODE_NIGHT_AUTO. Changes between day/night based on the time of day.
您通常会在自己的自定义应用程序类中执行此操作:
public class MyApplication extends Application {
public void onCreate() {
super.onCreate();
AppCompatDelegate.setDefaultNightMode(
AppCompatDelegate.MODE_NIGHT_YES);
}
}
更多信息here