【oschina android源码分析】切换夜间模式的实现

点击夜间模式按钮监听方法

    private void switchTheme() {
        if (AppContext.getNightModeSwitch()) {
            AppContext.setNightModeSwitch(false);
        } else {
            AppContext.setNightModeSwitch(true);
        }

        if (AppContext.getNightModeSwitch()) {
            getActivity().setTheme(R.style.AppBaseTheme_Night);
        } else {
            getActivity().setTheme(R.style.AppBaseTheme_Light);
        }

        getActivity().recreate();
    }

说明:
1. 页面模式的配置在本地要保存。AppContext.setNightModeSwitch(false);
2. 调用setTheme方法。系统写两套主题:AppBaseTheme_Light和AppBaseTheme_Night。
3. 调用getActivity().recreate()。

更具体的原理解释请见:
http://www.kymjs.com/code/2015/05/26/01
http://echo.vars.me/android/android-night-mode/

你可能感兴趣的:(【oschina android源码分析】切换夜间模式的实现)