Android最简单实现日夜间模式切换

本文介绍了在Android Studio中实现日夜间模式切换的简单步骤。通过在res目录下创建values-night文件夹并定义colors.xml,然后修改style.xml中主题为DayNight,即可轻松完成切换。同时提供了一段代码示例用于在应用中动态触发模式切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你用的是Android studio开发,则先把Android工程切换为Project,在你的项目下的res目录下创建一个values-night文件夹,并在这个文件夹下创建colors.xml文件,代码如下

    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>

    <color name="textColorPrimary">#616161</color>
    <color name="viewBackground">#212a2f</color>

再看你的values文件夹下的colors.xml的代码

    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>

    <color name="textColorPrimary">#616161</color>
    <color name="viewBackground">@android:color/white</color>

这两个文件的不同就是其背景和文字的颜色不同,如果你布局里已经给你的文字和背景设置过颜色,则这两行颜色改变不起作用,你需要自己在colors.xml中定义两套主题颜色。接下来再来看看style.xml文件中的改变:

<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

其实就是把你主题中的Night改成了DayNight,就这么简单,接着看代码怎么实现切换

 int mode = getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK;
                if(mode == Configuration.UI_MODE_NIGHT_YES) {
                    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
                } else if(mode == Configuration.UI_MODE_NIGHT_NO) {
                    AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
                }
                recreate();

可以将上面的代码放到你的监听事件里,这样就可以最简单的实现日夜间模式的切换了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值