//创建日夜间模式工具类
public class UIModeUtil {
/**
* 夜间模式切换
*/
public static void changeModeUI(AppCompatActivity activity){
//自动判断当前模式 自动切换相对的模式
int currentNightMode = activity.getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
if(currentNightMode == Configuration.UI_MODE_NIGHT_NO){
//日间模式,切成夜间模式
activity.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
SpUtil.setParam(Constants.MODE,AppCompatDelegate.MODE_NIGHT_YES);
BaseApp.mMode = AppCompatDelegate.MODE_NIGHT_YES;
}else{
activity.getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
SpUtil.setParam(Constants.MODE,AppCompatDelegate.MODE_NIGHT_NO);
BaseApp.mMode = AppCompatDelegate.MODE_NIGHT_NO;
}
}
/**
* 设置当前的模式
* @param activity
*/
public static void setActModeFromSp(AppCompatActivity activity){
int mode = (int) SpUtil.getParam(Constants.MODE, AppCompatDelegate.MODE_NIGHT_NO);
activity.getDelegate().setLocalNightMode(mode);
}
/**
* 设置当前的模式
* @param activity
*/
public static void setActModeUseMode(AppCompatActivity activity,int mode){
activity.getDelegate().setLocalNightMode(mode);
}
//设置app
public static void setAppMode(int mode){
AppCompatDelegate.setDefaultNightMode(mode);
}
}
//创建values-night 文件 将黑白颜色交换
<color name="white">#000000</color>
<color name="dedede">#dedede</color>
//在Activity中使用
private void setDayAndNight() {//切换夜间模式
UIModeUtil.changeModeUI(MainActivity.this);
}
安卓日夜间模式切换
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 1、Android主题切换日夜间模式 1、Google提供了夜间模式方案 首先你需要准备两套资源,一套日见一套夜间...
- 我用的是小米,默认是方正兰亭黑,不过说实话我并不能区分它和微软雅黑的区别。 我不太喜欢微软雅黑,尤其是显示繁体字的...