Android 夜间模式实现

Android设置夜间模式的主题样式 阅读详情

本次使用uiMode这种方式来实现~
修改uimode是修改Configuration,这种主题切换只限于黑白模式,没有其他模式,不需要大量定义主题。

1,需要做哪些准备

2,如何实现

3,遇到了哪些问题

一,需要做哪些准备

1,app的module 引入

implementation 'androidx.appcompat:appcompat:1.4.0'

,2,需要Activity须继承AppCompatActivity

3,清单文件 设置主题 Theme.AppCompat.DayNight

需要单独定义一个values-night 文件夹,里面要单独配置一份style文件和color文件。
style文件里滴定义colorPrimary,colorPrimaryDark,colorAccent 等主题颜色,当然普通values文件夹也要正常配置。
color文件里定义一些app里根据设计的夜间模式的颜色值

 values文件里的style:

 values文件里的color:


 

  values-night文件里的style:

values-night文件里的color:

 

 2,如何实现

首先了解哪些主题可以配置,AppCompatDelegate里包含这么几种:
MODE_NIGHT_NO: 使用亮色(light)主题,不使用夜间模式
MODE_NIGHT_YES:使用暗色(dark)主题,使用夜间模式
MODE_NIGHT_AUTO:根据当前时间自动切换 亮色(light)/暗色(dark)主题
MODE_NIGHT_FOLLOW_SYSTEM(默认选项):设置为跟随系统,通常为 MODE_NIGHT_NO

如何设定主题:
1,AppCompatDelegate.setDefaultNightMode(int mode);

2,getDelegate().setLocalNightMode(int mode)

他俩的区别:
AppCompatDelegate.setDefaultNightMode()是对整个App中theme为DayNight主题生效
getDelegate().setLocalNightMode()只对特定的组件生效,比如在activity中调用,只会对当前的activity起作用~

调用这两个方法,app会自动根据values与values-night 配置文件里的配置进行自动的变更~

调用完后要调用recreate(),重新启动页面~

AppCompatDelegate.setDefaultNightMode()效果:

点击setDefaultNightMode

 

getDelegate().setLocalNightMode()效果:

点击setLocalNightMode

 

获取应用当前主题:
 

                int currentNightMode = getResources().getConfiguration().uiMode
                        & Configuration.UI_MODE_NIGHT_MASK;
                switch (currentNightMode) {
                    case Configuration.UI_MODE_NIGHT_NO:
                        Toast.makeText(SecondActivity.this, "UI_MODE_NIGHT_NO", Toast.LENGTH_SHORT).show();
                        break;
                    // Night mode is not active, we're in day time
                    case Configuration.UI_MODE_NIGHT_YES:
                        Toast.makeText(SecondActivity.this, "UI_MODE_NIGHT_YES", Toast.LENGTH_SHORT).show();
                        break;
                    // Night mode is active, we're at night!
                    case Configuration.UI_MODE_NIGHT_UNDEFINED:
                        Toast.makeText(SecondActivity.this, "UI_MODE_NIGHT_UNDEFINED", Toast.LENGTH_SHORT).show();
                        break;
                    // We don't know what mode we're in, assume notnight
                }

 

但这个api只会记录当前操作更改后的状态,当app再启动时获取到的总是UI_MODE_NIGHT_NO

所以要结合SharedPreference来记录这个状态,保证app再次启动时能维持之前选择的状态~
application里:

 点击setDefaultNightMode 时:

三,遇到了哪些问题

当调用recreate()时,

1,在页面控件比较多时会出现闪屏的问题,

2,或者当是activity 承载多个fragment时,切换前是第二个fragment,但当执行完recreate()后,会变为第一个fragment类似问题

第一个问题,可以使用startActivity重新启动activity结合过度动画来处理,比如:

 第二个问题使用recreate(),可以在onSaveInstanceState()方法保存状态,然后再oncreate时重新取出~

 

 

Android9夜间模式 Android9可在开发者选项中开启夜间模式,本文研究其配置和效果。 阅读详情

相关推荐

Android实现夜间模式切换功能

许多APP现在已经有夜间模式(也有的叫做护眼模式),它可以一键将应用从浅背景色、深前景色切换到深背景色、浅前景色的模式,不仅夜间护眼,还有省电的功效。但以往这些只是APP自己开发的功能,而从 Android Q 开始,夜间模式成为一个全局设置,用户只需下滑呼出快捷设置菜单,开启夜间模式,整个 Android 操作系统界面和支持夜间模式的APP都会自动变成统一的深色风格。values-night文件中的代码是在values文件的基础上修改的,在下方进行对比。values-night中的colors.xml。

2401_85835668的博客 1049

Android夜间模式的简单实现

Android 6.0以后系统提供了AppCompatDelegate用来实现夜间模式和日间模式的切换,AppCompatDelegate中存在以下几种模式: AppCompatDelegate.MODE_NIGHT_YES:设置夜间模式 AppCompatDelegate.MODE_NIGHT_NO:设置日间模式 AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM:跟随系统设置决定是否设置夜间模式 AppCompatDelegate.MODE_NIGHT_AUTO

xuzhb 6450

POSS-NH2:氨基化笼型聚半倍硅氧烷的合成与应用探索

本文详细介绍了氨基化笼型聚半倍硅氧烷(POSS-NH2)的合成方法与应用。通过水解缩合与官能团转化两种主流路线,可制备出这种关键的纳米增强材料。其核心价值在于通过表面的氨基与树脂基体形成化学键合,从而显著提升复合材料的热稳定性和机械性能。文章以环氧树脂改性为例,展示了POSS-NH2在航空航天、电子封装等高性能领域的应用潜力。

grpc6streamer的博客 498

Android Studio 新版本的 values和values-night目录下内容说明

Android Studio目录下的values和values-night目录的说明

adminstate的博客 1918

大模型训练和推理

大模型训练moe是指混合专家(Mixture-of-experts,简称MoE)的,这是一种用于提高大型神经网络性能的技术,它可以将模型的一部分替换为多个专家,每个专家只负责处理一部分输入数据,从而增加模型的参数量和表达能力,同时减少计算量和训练时间。指令可以作为模型的输入的一部分,也可以作为模型的输出的一部分,具体取决于任务的类型。上下文扩展技术的,这是一种用于提高大型语言模型(LLM)对长文本的处理能力的技术,它可以让模型在不增加参数量的情况下,扩展其注意力范围,从而提高模型的语言理解和生成能力。

weixin_45325331的博客 6019

HI3516CV610海思SOC:超高清智慧视觉开发全攻略

本文全面解析海思HI3516CV610 SOC在超高清智慧视觉开发中的应用。该芯片集成双核A7处理器、1Tops NPU、AI ISP及4K视频编码器,专为智能摄像头设计。文章详细介绍了开发环境搭建、核心硬件架构、媒体处理平台(MPP)实战、AI算法集成与系统调优等全流程攻略,帮助开发者高效构建稳定可靠的视觉AI产品。

weixin_29269441的博客 1252

android os夜间,android 夜间模式实现

最近项目需要需要实现 夜间模式功能,大致有两种实现方式:设置日间、夜间两套theme,使用 setTheme 的方法让 Activity 设置主题;通过Android Support Library:appcompat 包中的 UiMode 来支持日间/夜间模式的切换(v23之后才有日间、夜间模式)方法一需要对原有所有布局文件进行修改,工作量巨大,不适应于目前我们这种已经做了很久的项目,所以决定...

weixin_35935514的博客 279

GD32F303实战:用定时器4触发ADC2+DMA,实现10ms精准采样1024点的完整流程

本文详细介绍了在GD32F303微控制器上使用Timer4触发ADC2配合DMA传输,实现10ms精准采样1024点的完整方案。从硬件架构设计、时钟树配置到定时器参数计算,提供了完整的工程实现流程和常见问题排查方法,适用于工业传感器监测等高实时性场景。

weixin_29194693的博客 433

android os夜间,Android夜间模式实现

查看我的全部开源项目【开源实验室】欢迎加入我的QQ群:【201055521】,本博客客户端下载【请点击】本文原创,转载请注明地址:http://blog.kymjs.com/最近在做一个Android夜间模式的功能,又重新研究了一下Theme机制。贯彻我的风格,以解决问题为目标,写了个小Demo,简单了实现了切换夜间模式,为大家讲解。在Activity中有一个方法叫setTheme(),可以设置A...

weixin_32570803的博客 124

PC网站实现微信扫码登录功能(二)

上篇我们介绍了怎么申请账号以及最后拿到appId和appSecret,如果有不清楚的可以看一下 PC网站实现微信扫码登录功能(一) 下面我就来说一下怎样在PC端怎么实现扫码登录功能。 一、进入官方文档网站 https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html 其实官网对过程描述的已经非常细致了。并且提供了两种扫码方式。一种是跳转二维码扫描页面,另一种是内嵌式二维码。大家可以

qq_35771266的博客 3万+

使用lightGBM进行数据建模及预测

在机器学习领域中,数据建模和预测一直是非常重要的任务。而lightGBM作为一种基于梯度提升算法的高效机器学习框架,被广泛应用于数据建模和预测中。本文将介绍如何使用lightGBM进行数据建模和预测。到此,我们已经成功使用lightGBM对数据进行了建模和预测。使用lightGBM可以快速、高效地完成数据建模和预测任务,是机器学习领域中不可或缺的工具之一。使用lightGBM进行数据建模及预测。

qq_37934722的博客 1016

Android实现夜间模式

最近研究了下安卓夜间模式的实现,发现没那么复杂,先打个草稿,待会写一下

魏成林的专栏 975

华为OD机试真题 新系统 2026-04-26 Python&JS 实现【最大化游戏试玩资格分发】

新研发了一台游戏设备可以面向用户接受试玩。现有 n 个试玩申请,每个试玩有开始时间和结束时间。作为协调员,为了能让更多人体验到游戏,你需要对试玩申请进行选择,使得:

MISAYAONE的博客 289

android夜间模式的实现

attr.xml文件 color文件 #000000 #ffffff #ff87cefa #ff87cefa #000000 #ffffff style文件 @color/light_color @color/light_item_color

jys1115的专栏 755

【图像去噪】论文复现:Mamba没Out!MaIR的Pytorch源码复现,跑通全流程,轻松解决环境配置问题,图文结合,明确MaIR创新点,与MambaIR对比,示意图与源码对应,清晰易懂,注释详细!

论文题目:MaIR: A Locality- and Continuity-Preserving Mamba for Image Restoration —— MaIR:用于图像恢复的局部性和连续性保持 Mamba【图像去噪】论文精读:MaIR: A Locality- and Continuity-Preserving Mamba for Image Restoration【图像去噪】论文复现:Man!

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1113

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

android实现夜间模式_Android中的夜间模式实现

android实现夜间模式Easiest way to implement night mode in android. 在Android中实现夜间模式的最简单方法。 Android has recently introduced Dark theme from Android 10 which allows user to easily toggle between light/dark th...

weixin_26727575的博客 1344

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android的Theme实现夜间模式

代码与技术       本文摘自:http://www.kymjs.com/darkTheme/ Android夜间模式实现 最近在做一个Android夜间模式的功能,又重新研究了一下Theme机制。贯彻我的风格,以解决问题为目标,写了个小Demo,简单了实现了切换夜间模式,为大家讲解。 最近在做一个Android夜间模式的功能,又重新研究了一下Theme机制。贯彻我的风格,以解

wblobin的博客 864

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

android studio夜间模式,android studio怎样实现夜间模式

满意答案noxlqub2016.05.01采纳率:51%等级:7已帮助:210人关于阅读类的app,有个夜间模式真是太重要了。那么有两种方式可以实现夜间模式1:修改theme,重启activity优点:正儿八经的夜间模式,配色看着舒服缺点:图片刺眼、闪屏2:使用一个带黑色带透明度的View,盖在现有的activity上,效果类似你带上墨镜,看着太阳不刺眼。优点:不用重启activity,不...

weixin_35709128的博客 2004

android自动夜间模式吗,Android夜间模式的实现方案

原标题:Android夜间模式的实现方案作者简介本篇来自 Sunlight1024的投稿,详细地讲解了关于Android应用的夜间模式的实现,希望大家喜欢!Sunlight1024的博客地址:http://blog.youkuaiyun.com/qq_20521573前言对于一款阅读类的软件,夜间模式是不可缺少的。最初看到这个需求时候觉得无从下手,没有一点头绪。后来通过查阅资料发现 Android 官方在 S...

weixin_31968831的博客 808

android自动夜间模式吗,Android夜间模式的几种实现

参考文章Android夜间模式的几种实现 我更倾向于第三种,简单直接,快速一、直接修改widget颜色,这种方式实现起来最简单,但需要每个控件都去修改,太过复杂。例如:/***相应交互,修改控件颜色*@paramview*/publicvoidonMethod1Click(Viewview){if(view.getId()==R.id.btn_me...

weixin_31032799的博客 287

android 8.1 夜间模式,android 快速实现夜间模式

最近项目中遇到了一个问题,夜间模式在8.0以上的手机中不起作用,查看了一下原因,是夜间模式实现方法的问题。分两种情况介绍一下先看一下运行效果:第一种 是目前项目中用到的,是以前的开发人员写的,存在一些问题(不兼容8.0以上的版本),已解决第二种是Support Library 中自带的一种方法。第一种:第一步 需要添加夜间模式资源,以-night为后缀日间模式 ...

weixin_36304806的博客 901

Android夜间模式实现

Android夜间模式实现 这个方案使用Support Library 23.2中新添加的夜间模式主题,并且可以向下兼容最低api 14的,基本满足绝大多数的手机。 Step 1: 需要 com.android.support:appcompat 23.2及以上的版本,我使用的androidx包下的版本,可以参考. 相关依赖加入: implementation 'androidx.appcom...

LiuShuaiQ的博客 697

Android夜间模式的实现方案

今日科技快讯据《金融时报》报道,几名知情人士透露,亚马逊正在研发其首款可穿戴设备——一副可以随时随地唤醒亚马逊智能助手Alexa的智能眼镜。这几名知情人士称,这幅智能眼镜通过无线方式连接到智能手机;在外观设计上,它跟普通眼镜十分相似,佩戴舒适,也不会太显眼。这款智能眼镜将采用骨传导技术,用户不必使用耳机也能听到从Alexa传来的声音。作者简介本篇来自 Sunlight1024 的投稿,详细地讲解了

郭霖 1474
上一篇: Glide 4.6.1 api 初始
下一篇: Android 控制EditText输入内容类型
liuhaha1015
博客等级 码龄10年 73粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值