Android实现夜间模式切换功能,android模块化框架

<?xml version="1.0" encoding="utf-8"?>

#35464e

#212a2f

#212a2f

#616161

#212a2f

@android:color/holo_blue_dark

values中的strings.xml

DayNight

日间模式

values-night中的strings.xml

DayNight

夜间模式

在MainActivity.java中添加点击、功能动作


public class MainActivity extends AppCompatActivity {

private Button mDayNightChange;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mDayNightChange = (Button) findViewById(R.id.day_night_change);

mDayNightChange.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

int mode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;

if (mode == Configuration.UI_MODE_NIGHT_YES) {

getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);

} else if (mode == Configuration.UI_MODE_NIGHT_NO) {

getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);

}

recreate();

}

});

}

}

import android.support.v7.app.AppCompatActivity;

import android.support.v7.app.AppCompatDelegate;

时可能会遇到报红或无法找到的问题,可以用下方的代码替代

import androidx.appcompat.app.AppCompatActivity;

import androidx.appcompat.app.AppCompatDelegate;

在多个地方都会遇到

添加MyApplication.java,设置功能类型


import android.app.Application;

import androidx.appcompat.app.AppCompatDelegate;

public class MyApplication extends Application {

@Override

public void onCreate() {

super.onCreate();

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM);

}

}

这里的 Mode 有四种类型可以选择:

MODE_NIGHT_NO: 使用亮色(light)主题,不使用夜间模式;

MODE_NIGHT_YES:使用暗色(dark)主题,使用夜间模式;

MODE_NIGHT_AUTO:根据当前时间自动切换 亮色(light)/暗色(dark)主题;

MODE_NIGHT_FOLLOW_SYSTEM(默认选项):设置为跟随系统,通常为 MODE_NIGHT_NO

尾声

一转眼时间真的过的飞快。我们各奔东西,也各自踏上了自己的旅途,但是即使多年不见,也因为这份情谊我们依旧如从前那般“亲密”。不忘初心方得始终。加油吧,程序员们,在我看来35岁,40岁从来不是危机,只要永远不要忘记自己为何踏上征程!

最后需要同款资料的,可以 **私信我点击【学习】**我愿意分享给你!

为了让更多在学习中或者最近要准备面试的朋友们看到这篇文章,希望你们能多多评论,点赞+转发!

再次感谢所有给我提供过题目的朋友们,感谢一路有你!

猜你喜欢

转载自blog.csdn.net/m0_66264630/article/details/122945085