在项目研发中,我们避免不了需求中会应用到夜间模式,这里对它做一些总结以及封装

从API 23后,Android就有自带的api能够实现夜间模式与白天模式的切换。
Support Library 23.2(应用于API14+)推出了适合Android Apps的DayNight主题。

废话不多说,看效果:

最后给大家把主要的部分拿出来,供大家参考,结尾有项目下载地址

1. 导入依赖

implementation 'androidx.appcompat:appcompat:1.0.2'

2.修改style文件

将主题改为Theme.AppCompat.DayNight 或者它的子主题。只有这样才支持白夜模式的切换

<resources><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>
</resources>

3.新增夜间模式下的colors文件

App需要在白夜模式下互相切换,所以需要两套的颜色资源文件

(1) values >>> colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources><color name="colorPrimary">#009688</color><color name="colorPrimaryDark">#03A9F4</color><color name="colorAccent">#009688</color><color name="blue">#03A9F4</color><color name="viewColorPrimary">#ffffff</color><color name="txtColor">#212121</color><color name="viewBackground">#03A9F4</color><color name="tabColor">#F7F7F7</color><color name="tabTxtColor">#bfbfbf</color><color name="txtFragment">#03A9F4</color><color name="fragmentBlock">#03A9F4</color>
</resources>

(2) values-night >>> colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources><color name="colorPrimary">#35464e</color><color name="colorPrimaryDark">#212121</color><color name="colorAccent">#ffffff</color><color name="viewColorPrimary">#212121</color><color name="txtColor">#ffffff</color><color name="viewBackground">#303030</color><color name="tabColor">#303030</color><color name="tabTxtColor">#ffffff</color><color name="txtFragment">#ffffff</color><color name="fragmentBlock">#009688</color>
</resources>

4.切换模式

这里我是在抽的Activity基类里面写的。基类继承AppCompatActivity

MainActivity中的应用

总结

到这里就已经结束了,欢迎大家留言探讨!
下载地址:Android 模式切换

Android 夜间模式(白/夜间模式的切换)相关推荐

  1. Android中白天模式与夜间模式的切换

    前言 安卓是自带模式的,我们在styles.xml便可以设置标题栏显示的颜色(白天和夜间模式当然也就可以通过切换主题来实现) 设置切换之间的动画 在res下面新建anim文件夹然后在里面创建切换动画 ...

  2. android support library github,Android Support Library 之 夜间模式

    原标题:Android Support Library 之 夜间模式 前言 夜间模式实现方式:1.通过切换theme来实现夜间模式.优点:可以匹配多套主题,并不局限于黑白模式缺点:需要大量定义主题详见 ...

  3. 开源中国源码学习(五)——切换皮肤(日间模式和夜间模式)

    在开源中国客户端源码的侧滑菜单栏里有一个模式切换的选项,可以完成夜间模式和日间模式的相互转换. 一.功能介绍 在侧滑菜单栏里点击日间或者夜间后,客户端的皮肤可以发生变化,来达到保护眼睛的作用. 二.详 ...

  4. Android原生方式实现夜间模式

    夜间模式的实现,Github上有很多种相关的库和Demo,但实现方式都比较复杂,并且为了实现一个小功能,引入一个第三方库,很多时候,都是得不偿失的. 实现夜间模式的主要思路就是改变程序的style,主 ...

  5. android夜间模式护眼,长时间看开着护眼模式(夜间模式)玩手机,这样对人有影响吗?...

    原标题:长时间看开着"护眼模式(夜间模式)"玩手机,这样对人有影响吗? 现在我们对手机的依赖越来越严重,安全感不再来自身边人,而是形影不离的手机.人们除了每天三分之一的时间花在睡觉 ...

  6. android ios 夜间模式切换,iOS-夜间模式(换肤设置)

    一.实现功能及主要思路 实现功能: iOS 开发中有时候会有夜间模式(换肤设置)的需求,  其实主要是更改相关颜色操作.每次切换夜间/白天模式时,都会发出通知给所有ViewController,让它们 ...

  7. android 夜间模式代码,Android 超简单的夜间模式如何实现?

    原标题:Android 超简单的夜间模式如何实现? 本文作者 作者: 唐子玄 实现夜间模式有很多种方式,经过多次尝试,算是找到了一种性价比较高的方式. 1 主题方式 这是最正统的方式,但工作量巨大,因 ...

  8. 如何使用Towify在小程序中实现夜间模式和日间模式的自由切换?

    通过触发器中的执行其它触发器动态显示夜间模式和日光模式图标的显示和隐藏,同时使用组件切换器控制不同组件之间的切换 效果展示 具体步骤 制作按钮切换模式 制作切换图标 创建开关切换触发器 创建图标显示隐 ...

  9. iOS开发夜间模式的设置(主题切换)

    iOS开发夜间模式的设置(主题切换) 很长一段时间没有写博客了.想到自己最近刚好做了不少重构,刚好可以总结一下. 夜间模式,很多阅读类的或资讯类的App都会这个功能.以前自己也做过,现在把它抽出来封装 ...

最新文章

  1. [SDOI2015]权值
  2. python做一个考试系统_请用 Python 语言编写一个简易的系统登录程序。
  3. 2019年人工智能行业现状与发展趋势报告
  4. 【CentOS】磁盘管理与vim编译器
  5. 2021.12.20用ULN2003驱动四线步进电机
  6. centos 6.4 FTP安装和配置
  7. boost::geometry::segment_intersection_points用法的测试程序
  8. 向日葵企业版 v2.0.0.17075
  9. Python接口自动化之unittest单元测试
  10. 用Python做童年回忆的游戏 贪吃蛇
  11. 创业公司如何做到零成本实现用户快速增长
  12. html网页老是崩溃,MSHTML.dll 错误模块导致ie9最近经常崩溃
  13. STM32F205时钟配置
  14. [Chrome插件开发]监听网页请求和响应
  15. EPS电动转向系统分析
  16. Assignment中脚注和尾注的正确打开方式
  17. 对比性句子sentiment analysis
  18. SPARC架构下的反汇编(二)——准备知识
  19. 一些非常有趣的python爬虫例子
  20. 量化 ZIG函数的python实现

热门文章

  1. iOS 解决在Storyboard中修改UITableViewCell背景色无效果的问题
  2. C# 如何遍历一个实体的所有字段并给另外一个实体赋值,包含子实体也可以
  3. 检测三维物体?一篇文章认识《双目立体视觉》
  4. 绝对式编码器工作原理是什么?如何安装绝对式编码器?
  5. 二叉数的前序,中序,后序(递归)
  6. c# 虚拟机加密软件_在C#中构建一个虚拟软件电话,该软件电话可以在您的呼叫中心中作为振铃组...
  7. topShelf 安装window服务
  8. JS放在head和放在body中的区别
  9. zeronet php,ZeroNet (简体中文)
  10. Unix - 家族谱系图