Kindle微信怎么切换夜间模式式?

关于日间夜间模式切换的一种实用方法
日夜间模式切换:
* 第一种设置夜间模式:通过重新给Activity设置主题,然后杀掉Activity,再创建Activity重新设置的之塔才 * 有效
* 搭建环境
* 1.在values中colors里设置颜色属性
* 2.在style.xml中定义两组主题,也就是日间主题和夜间主题
* 3.创建attrs.xml文件
* 使用代码
* 4.需要夜间模式的布局引用attr自定义属性
* 5.java代码
* a.判断储存类型
* b.点击事件,根据类型进行日夜间的切换
colors里夜间模式的设置
&color name="nightColorPrimary"&#3b3b3b&/color&
&color name="nightColorPrimaryDark"&#383838&/color&
&color name="nightColorAccent"&#a72b55&/color&
styles日间模式要添加:
&item name="android:textColor"&@android:color/black&/item&
&item name="mainBackground"&@android:color/white&/item&
夜间模式要写:
&style name="NightAppTheme" parent="Theme.AppCompat.Light.DarkActionBar"&
&!-- Customize your theme here. --&
&item name="colorPrimary"&@color/nightColorPrimary&/item&
&item name="colorPrimaryDark"&@color/nightColorPrimaryDark&/item&
&item name="colorAccent"&@color/nightColorAccent&/item&
&item name="android:textColor"&@android:color/white&/item&
&item name="mainBackground"&@color/nightColorPrimaryDark&/item&
在values里创建attrs.xml文件,然后定义属性&attr name="mainBackground" format="color|reference"/&
在activity_main.xml引用夜间模式:
注意这里引用一下我们自定义的attr资源Android:background="?attr/mainBackground",可以使用到此属性的控件带有日夜间模式切换
紧接着就是java类了,先设置点击事件然后就要储存状态点击事件要做一个判断用三元运算符或者if,else都行至于方法我都给陈列下来了.
在这本人犯了个小小的错误,请大家原谅那就是我调用onSaveInstanceState的时候因为疏忽调用错了
一下图片就是我错的那个方法:
下面这个方法是正确的:
本人不时也会出错,所以有错请大家多多指导
没有更多推荐了,3925 条评论分享收藏感谢收起赞同 3添加评论分享收藏感谢收起量变中,求质变
夜间模式实践(一)
为什么说是实践一呢?
因为这次写的只是实现夜间模式最基本的方式,当然会有一些瑕疵。
因为最近手机和电脑的模拟器一起抽风……就不给大家看效果了,就是跟知乎或者知乎日报的夜间模式差不多
直接上代码:
首先添加依赖:
compile ‘com.android.support:appcompat-v7:23.3.0’
配置相应的模式
&style name="AppTheme" parent="AppTheme.NoActionBar"&
&item name="colorPrimaryDark"&@color/colorMain&/item&
&item name="colorPrimary"&@color/colorMain&/item&
&item name="drawerArrowStyle"&@style/AppTheme.DrawerArrowToggle&/item&
&style name="AppTheme.NoActionBar" parent="Theme.AppCompat.DayNight"&
&item name="windowActionBar"&false&/item&
&item name="windowNoTitle"&true&/item&
因为我设置了NoActionBar 所以只要继承Theme.AppCompat.DayNight就好了。
然户在application节点设置
android:theme="@style/AppTheme"
设置夜间/白天模式的资源
主要是color和string
在res下新建一个values-night文件夹,然后新建colors.xml和strings.xml
设置相应的颜色和字符资源
&?xml version="1.0" encoding="utf-8"?&
name="colorPrimary"&#222222&
name="colorPrimaryDark"&#2B2B2B&
name="colorAccent"&#EDEDED&
name="colorMain"&#222222&
name="colorGray"&#8D8D8D&
name="colorBlack"&#2B2B2B&
name="colorGrayWhite"&#222222&
name="colorBG"&#343434&
name="colorItemBG"&#404040&
name="colorWord"&#DDDDDD&
注意: 这里所有的name必须和values目录下的colors.xml里的相同,在切换到夜间模式后才能正确的切换资源。
模式切换:
private void reSetMode() {
boolean isNightMode = PrefUtils.getBoolean(MainActivity.this, "isNightMode", false);
if (isNightMode) {
PrefUtils.setBoolean(MainActivity.this,"isNightMode",false);
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
PrefUtils.setBoolean(MainActivity.this,"isNightMode",true);
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
recreate();
我在SharePreference中保存了一个值来标记当前是夜间模式还是白天模式 (PrefUtils是一个工具类就是操作SharePreference
大家不用在意)
MODE_NIGHT_NO: 不使用夜间模式
MODE_NIGHT_YES:使用夜间模式
MODE_NIGHT_AUTO:根据当前时间自动切换
MODE_NIGHT_FOLLOW_SYSTEM(默认):跟随系统,一般为MODE_NIGHT_NO
最后注意一定要recreate();
不然是不会生效的,这也是这种方法算是一个不足的地方,因为在重启Activity时会有一瞬间的闪烁,效果就不好了。当然是有办法解决的,这里不做说明,之后会写,主要思想是保存一帧做透明度渐变
最后为了在关闭应用后再打开仍然保存之前的模式,需要在Application中做处理:新建一个MyApplication.java
public class MyApplication extends Application {
public static boolean isNightM
public void onCreate() {
super.onCreate();
isNightMode = PrefUtils.getBoolean(this.getApplicationContext(), "isNightMode", false);
if (isNightMode) {
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
很简单 就是在启动的时候根据之前保存的标记变量来设置夜间/白天模式
在清单文件中
&application
android:name=".MyApplication"
基本上就是这样,看过很多方式来实现夜间模式,个人觉得这种是最好理解和实现的。当然有一点不足就是reCreate时候的一瞬间闪烁。后边介绍怎么解决这个问题。
有写的不对的地方
没有更多推荐了,2添加评论分享收藏感谢收起写回答1 个回答被折叠()为什么没人关注终于有夜间模式了【kindle吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:570,763贴子:
为什么没人关注终于有夜间模式了收藏
等了好久!新固件啥时候推送啊??kv已经饥渴难耐!
新款独有?
算是进步了一点
等固件,能修复楷体就好了
黑底色这样更费电,感觉偏鸡肋功能
暂时无感啊,我夜间看调暗背光习惯了
鸡肋 不喜欢夜间模式
会不会费电?
我感觉黑底更容易暴露屏幕上的小白点,换货率要爆炸?
越狱刷koreader就有的,不过光线暗的时候用效果并不理想,因为墨水屏在刷新的时候会有一个全黑全白的过程,实际表现就是看几页就会闪一下
你在搞笑吧,kindle本来就看不累,要夜间模式干嘛...
夜间模式?这样肯定更费电,应该每次换页都要闪,没意义,很鸡肋
留意到但并不心动所以。。。
挺好的,我喜欢
我也在期待!!
之前用koreader试过夜间模式,感觉眼睛疼
晚上看个毛线书啊
这是反人类啊,正常地看书不好吗
夜间模式没什么用,使用了眼睛难受,鸡肋功能。
用过手机夜间模式看书的都知道,在关灯后用夜间模式不要太舒服
我喜欢夜间模式
宿舍躺床上看书时特需要
用处不大 低亮度深夜看书多年了 一直不觉得亮眼
用处不大。
kv要用这种模式, 必须得一页一全刷吧. 不然残影感人
今日固件更新。只提到了子?和加粗,没说夜间模式。桑心。
我最期待的是夜间暖色光的护眼模式
登录百度帐号

我要回帖

更多关于 怎样切换夜间模式 的文章

 

随机推荐