如何在Android应用程序上自动切换为黑暗模式?

问题描述 投票:1回答:1

我正在制作一个Android应用。我为黑暗模式制作了另一个UI。所以这就是我所需要的;该应用程序将在当地时间自动切换为深色主题。例如,当当地时间太阳下山时,应用程序将切换为黑暗模式。

或另一种选择是在一天中的预设时间切换到黑暗模式。希望你理解我的问题。如果有人知道,请帮助我,如果可能的话,我宁愿选择第一种方法。预先感谢。

android android-studio user-interface android-dark-theme
1个回答
0
投票

也许您可以看看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

© www.soinside.com 2019 - 2024. All rights reserved.