中国睡眠研究会发布的<2017 年中国青年睡眠现状报告>显示,大约 90% 的人在睡前离不开电子产品. 不知道大家有没有感觉到普通的亮色界面会让我们在夜间使用的时侯感到刺眼,长时间使用会感觉眼睛疼痛,对眼睛的伤害也非常大.(当然睡前不玩手机是最好的解决方法) 所以对于阅读性或者社交娱乐等等 APP,打造夜间模式的功能会让我们得到更好的体验,减少对眼睛的伤害. 夜间模式 UI 与深色风格 UI 的区别 我们平时使用的不少音乐或视频类产品都采用了深色风格 UI 的设计,深色风格 UI 容易承托娱乐…
DKNightVersion下载地址: https://github.com/Draveness/DKNightVersion 基本原理就是利用一个单例对象来存储颜色, 然后通过runtime中的objc_setAssociatedObject和objc_getAssociatedObject来完成两个对象间传递要保存的颜色(纯属个人看法) 下面是gif效果图: 下面是代码部分: import UIKit class ViewController: UIViewController { @IBO…
如今非常多App都有夜间模式,特别是阅读类的App.夜间模式如今已经是阅读类App的标配了,其实,日间模式与夜间模式就是给App定义并应用两套不同颜色的主题,用户能够自己主动或者手动的开启,今天用Android自带的support包来实现夜间模式. 因为Support Library在23.2.0的版本号中才加入了Theme.AppCompat.DayNight主题,所以依赖的版本号必须是高于23.2.0的.而且,这个特性支持的最低SDK版本号为14,所以.须要兼容Android 4.0的设备,…
本文为原创文章,转载请标明出处 目录 创建主题样式 导入 variables.scss 创建 provider 创建 page 在 App 入口处应用主题 效果图 1. 创建主题样式 在 ./src/theme 文件夹下创建 theme.light.scss.theme.dark.scss 2个文件,分别用于日间模式.夜间模式的设置. theme.light.scss: .light-theme { ion-content { background-color: #f4f4f4; } .item…
在很多重阅读或者需要在夜间观看的软件其实都会把夜间模式当做一个 App 所需要具备的特性. 而如何在不改变原有的架构, 甚至不改变原有的代码的基础上, 就能为应用优雅地添加夜间模式就成为一个在很多应用开发的过程中不得不面对的一个问题. 就是以上事情的驱动, 使我思考如何才能使用一种优雅并且简洁的方法解决这一问题. 而 DKNightVersion 就是我带来的解决方案. 到目前为止, 这个框架的大部分的工作都已经完成了, 或许它现在不够完善, 不过我会持续地维护这个框架, 帮助饱受实现夜间模式之…
现在android项目values下打 attrs.xml <?xml version="1.0" encoding="utf-8"?> <resources> <attr name="bookimage" format="reference|color" /> <attr name="tvcolor" format="reference|color&qu…
 Android白天/夜间模式Day/Night Mode标准原生SDK实现 章节A:Android实现白天/夜间模式主要控制器在于UiModeManager,UiModeManager是Android系统SDK本来就提供好的白天/夜间模式的实现控制系统.然而仅有UiModeManager还不够,同时需要写一套白天/夜间模式的资源,涉及到res/drawable或者values/color的设置.现在给出一个例子加以说明实现Android白天/夜间模式的具体步骤和做法. 通常,在Androi…
引言 夜间模式其实属于多主题切换的一种,不过是最麻烦的一种.因为在夜间模式下不仅要切换主色调,次要色调等等,还要覆盖一些特殊的颜色,因为在夜间模式下总不能什么都是黑的把,那不得丑死-.-,所以当你夜间模式完成后,你的App对于日后多主题的扩展就可以轻松胜任了. 实现思路 多数App由于历史原因当对其进行夜间模式的功能改造时,工作量是比较大的,所以在真正开始着手实现前,我们还是应该先明确夜间模式(多主题)到底有多少实现的思路以及它们的优劣,这样才可以有效的避免项目延期的情况出现. 自定义attr属…
@author vivian8725118 @CSDN http://blog.csdn.net/vivian8725118 @简书 http://www.jianshu.com/p/832e9776e317 近期公司的项目在做夜间模式,使用了鸿洋的changeskin.一个很好用的library.在这里总结一下使用过程中遇到的各种问题和解决的方法. 使用方法 下载changeskin,作为module依赖至主项目,比如: dependencies { compile project(':cha…
一.直接修改widget颜色,这种方式实现起来最简单,但需要每个控件都去修改,太过复杂.例如: /** * 相应交互,修改控件颜色 * @param view */public void onMethod1Click(View view) { if (view.getId() == R.id.btn_method1) { int theme = NightModeUtils.getSwitchDayNightMode(this); NightModeUtils.setBackGroundColo…