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

原标题:Android Support Library 之 夜间模式

前言

夜间模式实现方式:1、通过切换theme来实现夜间模式。优点:可以匹配多套主题,并不局限于黑白模式缺点:需要大量定义主题详见博客:http://wuxiaolong.me/2015/08/19/ChangeTheme/

2、通过修改uiMode来切换夜间模式。修改uimode是修改Configuration,这种主题切换只限于黑白模式,没有其他模式,不需要大量定义主题,即本文介绍的内容。

效果预览

6d4311ec2aa367273176307cea32e098.gif

如何使用

第一步

(1)app/build.gradle

compile'com.android.support:appcompat-v7:25.3.1'

(2)Activity须继承AppCompatActivity

(3)Theme.AppCompat.DayNight

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

false

true

第二步

应用全局主题推荐在 Application 的onCreate()中进行设置AppCompatDelegate.setDefaultNightMode(int mode);

它有四个可选值,分别是:MODE_NIGHT_NO: 使用亮色(light)主题,不使用夜间模式MODE_NIGHT_YES:使用暗色(dark)主题,使用夜间模式MODE_NIGHT_AUTO:根据当前时间自动切换 亮色(light)/暗色(dark)主题MODE_NIGHT_FOLLOW_SYSTEM(默认选项):设置为跟随系统,通常为 MODE_NIGHT_NO

第三步

动态的设定主题,需要切换主题调用:

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);

//调用recreate()使设置生效

recreate();

注意事项

setDefaultNightMode()与setLocalNightMode()区别

AppCompatDelegate.setDefaultNightMode()是对整个App中theme为DayNight主题生效getDelegate().setLocalNightMode()只对特定的组件生效

夜间资源

把夜晚主题的color等资源放在values-night中,程序在运行时就会自动调用

获取应用当前的主题

intcurrentNightMode=getResources().getConfiguration().uiMode

&Configuration.UI_MODE_NIGHT_MASK;

switch(currentNightMode){

caseConfiguration.UI_MODE_NIGHT_NO:

// Night mode is not active, we're in day time

caseConfiguration.UI_MODE_NIGHT_YES:

// Night mode is active, we're at night!

caseConfiguration.UI_MODE_NIGHT_UNDEFINED:

// We don't know what mode we're in, assume notnight

}

如果切换了主题,本想通过这个方法,下次启动程序的时候,来设置。发现并没有记住这个值,还是只能SharedPreference读取,然后根据用户设置,调用 setDefaultNightMode() 方法。

适配文字图片

尽可能的使用主题属性(theme attributes)

文字颜色

android:textColor="?android:attr/textColorPrimary"

android:textColor="?android:textColorPrimary"

系统默认的文字颜色。在亮色(light)主题下,颜色接近黑色,在暗色(dark)主题下,颜色接近白色。有两种写法,次标题和三标题同样。

次标题

android:textColor="?android:attr/textColorSecondary"

三标题

android:textColor="?android:attr/textColorTertiary"

系统默认的背景颜色

android:background="?android:attr/colorBackground"

android:background="?android:colorBackground"

点击效果

android:background="?android:attr/selectableItemBackground"

android:background="?android:selectableItemBackground"

android:background="?attr/selectableItemBackground"

系统默认的图标颜色

如vector里颜色:

android:fillColor="?attr/colorControlNormal"

源码地址

https://github.com/WuXiaolong/DesignSupportLibrarySample

iOS 用户赞赏通道,谢谢支持

责任编辑:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497379.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

类脑信息处理研究取得进展

来源:AAAI2018概要:近期,中国科学院自动化研究所类脑智能研究中心类脑信息处理(BRAVE)研究组,在研究员张兆翔的带领下,在借鉴生物神经结构、认知机制与学习特性的神经网络建模与类人学习研究中取…

今天下午爽了一把!

呵呵,很久没这么爽爽地看电影了,一个下午居然连续看了三部电影!看到人不想看为止,实在是很过瘾的一个下午啊!只是是翘课看的电影,感觉有点不太好,最近真是越来越堕落了。看来要好好克制一下自己…

展望:共融机器人的基础理论与关键技术

来源:《国家科学评论》概要:自1959年工业机器人诞生以来,机器人在机械制造、国防安全、健康服务、科考与医疗等方面发挥出越来越重要的作用。自1959年工业机器人诞生以来,机器人在机械制造、国防安全、健康服务、科考与医疗等方面…

哈萨比斯导师:人工智能媲美人类或需两百年,神经学是条出路

来源:澎湃新闻概要:从围棋到智能驾驶,深度学习缔造了眼下这一波人工智能热潮。在深度学习最热的两大关键词“AlphaGo”和“自动驾驶”,托马索波吉奥(Tomaso Poggio)都有声名卓著的学生,分别是De…

独家对话英伟达首席科学家:解码AI芯片战局

来源:智东西概要:独家对话Bill Dally博士,深度解读四大AI热点话题。从2017年1月底以来,英伟达的股价又从108美元一路飙升至240多美元,翻了一倍有多。而英伟达股价一飞冲天的背后,正是人工智能技术不断兴盛崛…

[翻译]2005年软件业界推出新产品非官方计划

虽然预测未来的最好方法就是发明(The best way to predict the future is to invent it. -- A. Kay),但是对于我等现在还没开始发明或者还没有能力发明的人来说,不妨还是看看2005年会软件业界会推出点什么软件,想象一下程序员的生活会不会在2…

Replace Method with Method Object(以函数对象取代函数)

在一个大型函数中,由于局部变量的使用导致无法采用Extract Method class Order...double price() {double primaryBasePrice;double secondaryBasePrice;double teriaryBasePrice;// long computation.....} } 重构:将这个函数放进一个单独对象中&…

2018-2020年中国服务机器人行业深度研究报告

来源:机器人大讲堂概要:目前世界上至少有48个国家在发展机器人,其中25个国家已涉足服务机器人开发。一、报告编写背景和特点北京立德融创智能机器人技术研究院(简称“立德研究院”)通过对各机器人项目的实施以及自身发…

密歇根大学联合谷歌大脑提出,通过「推断语义布局」实现「文本到图像合成」

原文来源:arXiv作者:Seunghoon Hong、Dingdong Yang、Jongwook Choi、Honglak Lee「雷克世界」编译:嗯~阿童木呀我们通过推断语义布局(semantic layout)提出了一种新的文本到图像合成(text-to-image synthe…

华为5g汽车鸿蒙,网传华为携手极狐造车新图片,搭载5G天线+鸿蒙OS!

【太平洋汽车网 石家庄车市点评频道】(4月6日联合官宣海报)4月7日,继此前华为和极狐联合官宣“上海见”之后,网上再次流传第二波海报,对比第一天的“初次见面”,这一次的内容无疑更加“王炸”。除了文字信息的“自动驾驶新标杆”&…

智能工厂4.0:数字世界和物理世界的融合【附下载】

来源:专知概要:自动化与控制发展至今,智能工厂逐渐获得关注,并成为制造企业追求的目标。自动化与控制发展至今,智能工厂逐渐获得关注,并成为制造企业追求的目标。何为智能工厂?它应该是一个柔性…

Hide Delegate(隐藏“委托关系”)

通过一个委托类来调用另一个对象 重构:在服务类上建立客户所需的所有函数,用以隐藏委托关系。

中科院自动化所介绍深度强化学习进展:从AlphaGo到AlphaGo Zero

来源:德先生概要:2016年初,AlphaGo战胜李世石成为人工智能的里程碑事件。其核心技术深度强化学习受到人们的广泛关注和研究,取得了丰硕的理论和应用成果。深度强化学习进展: 从AlphaGo到AlphaGo Zero唐振韬, 邵坤, 赵冬斌 , 朱圆…

html select 文字居中显示图片,html原生select改造箭头及文字左右居中的一种办法...

使用过原生select做网页开发的人,一定会对select的两个问题痛心疾首,一是箭头没办法使用css改造,二是显示文字没办法左右居中。首先,如果你有足够时间的话,请改用jquerymobile。jquerymobile提供了移动端非常强大的各种…

2018年,这15个领域将会呈现指数级变化

来源:36氪概要:很多趋势将会在2018年继续下去,尤其是呈现指数级增长的多技术融合。很多趋势将会在2018年继续下去,尤其是呈现指数级增长的多技术融合。气候变化依然是一个最紧迫的问题,尤其当我们通过碳预算来解决问题…

中文WAP浏览器WapDisplayer V1.5发布

中文WAP浏览器WapDisplayer V1.5发布 中国被爱可以在线于2005-9-26发布了中文WAP浏览器WapDisplayer V1.5,欢迎大家下载使用。程序简介:WapDisplayer V1.5是一款利用M3Gate控件开发的中文WAP浏览器,除了保留原英文版M3Gate Version 1.2 beta的…

《自然》杂志:超导突触处理信息能力超人脑

来源:科技日报概要:据英国《自然》杂志网站近日报道,美国科学家研制出一款模拟人脑神经中枢处理过程的超导突触,其信息处理速度比人脑更快,而且更高效。据英国《自然》杂志网站近日报道,美国科学家研制出一…

世界首批智能音箱AI IQ测试报告,小米、京东和阿里初步PK

一、小米、京东和阿里智能音箱测试结果:二、测试说明:1.对智能产品进行智商测试,是一项没有先例的科学实验和研究,因此研究会处于不断修正和发展的过程,研究团队并不认为这个测试结果是完全成熟和客观的。希望通过测试…

人工智能产业展望:2018年三大难题如何破解?

来源:腾讯研究院概要:当前,AI的竞争已然升级到国家竞争。当前,AI的竞争已然升级到国家竞争。2017年首次出现了“AI中国威胁论”。谷歌前董事长施密特公开抱怨美国政府对企业在人工智能领域的支持不足,这将使美国“在10…