谈谈-Android夜间主题模式

摘要:
该主题允许应用程序轻松支持白天和晚上的主题。请参见以下步骤:在AndroidManifest.xml中将主题设置为主题,并使用setLocalNightMode()设置当前活动或对话框主题。有三种模式:1.AppCompatDeleate.MODE_,

        发布的Android Support Library 23.2,增加了夜间主题,实在是太令人兴奋了,有了这个主题再做夜间模式功能实在是太简单了。下面我就来介绍一下。

       该夜间主题是Theme,AppCompat.DayNight,与它相关的还有

DayNight.NoActionBar,DayNight.DarkActionBar,DayNight.Dialog.而且其主题向下兼容到了API14。这个主题可以让应用程序很轻松的支持白天和夜晚的主题

具体怎么做呢,看下面

第一步 

    应该在AndroidManifest.xml中设置theme为Theme,AppCompat.DayNight

第二步      

    需要重写AppCompatDelegate中的值也就是AppCompatDelegate.setDefaultNightMode()或者或通过getDelegate()得到AppCompatDelegate对象,并使用setLocalNightMode()来设置当前的Activity或Dialog的主题

     该模式有三种

    1. AppCompatDelegate.MODE_NIGHT_AUTO,他会时刻知道你最后的位置和 时间(如果您的应用程序已开启位置权限)用于白天和黑夜之间自动切换的 依据

     2. AppCompatDelegate.MODE_NIGHT_NO强制设定了从不使用夜晚主题。

     3. AppCompatDelegate.MODE_NIGHT_YES则强制设定了一直使用夜晚主题。

         例如

          <span style="font-size:24px;">getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);</span>  

 

         这句代码一定要写在setContentView()之前才有效,因为这是设置主题的

第三步  

     把白天和夜晚的资源分开。例如values,values-night.

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

 

不足之处:

     Android Support Library 23.2发布的这个夜间模式貌似只适用于多套资源的情况,如果只有1套资源,特别是图片,我们需要获取当前是白天还是夜间,对图片透明度进行处理,但是API提供的AppCompatDelegate类中并没有获取当前是白天还是夜间的方法,只有获取模式的方法。所以大家还是得根据项目需求而定

 

转载:http://blog.csdn.net/a1027317350/article/details/50781059

 

 

免责声明:文章转载自《谈谈-Android夜间主题模式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Python 中的几种copy用法图像质量评估(IQA)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

文档兼容性定义,使ie按指定的版本解析

   作为开发人员,特别是作为Web的前端开发人员 ,最悲催的莫过于要不断的,不断的去调试各种浏览器的显示效果,而这其中最让人头痛的莫过于MS下的IE系列浏览器,在IE系列中的调试我们将会发现没有一个是好伺候的,于是不得不学习各种Hack技术来满足各种浏览器之间的兼容。在这种痛苦中不断的挣扎,MS可能也实在是看不下去了,于是在IE8开始,微软引入了文档兼...

利用正则表达式,分割地址至省市县,更新MySQL数据库数据

一、部分主要源代码以及结果截图 import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import java.util.regex.Matche...

前后端分离的变化,以及前后端对接需要关注的点

1. 前言 随着互联网的高速发展,前端页面的展示、交互体验越来越灵活,响应体验也要求越来越高,后端服务的高并发、高可用、高性能、高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长的领域深耕细作。 然而这带来了新的问题: 前后端的对接界面双方却关注甚少,没有任何接口约定规范情况下各自撸起袖子就是干,导致我们在产品项目开发过程中,前后端的接口联...

particle系统使用

1.使用particleDesigner 制作好自己想要的粒子效果, 点击工具中SAVE,保存为.plist格式文件,然后将文件导入到项目中(最基本的就不用说了)。   2.CCParticleSystemQuad *particle = [CCParticleSystemQuad particleWithFile:@"test.plist"];   3....

VirtualBox虚拟机安装与上网配置

 一,安装VirtualBox     1.到https://www.virtualbox.org/下载安装包进行安装。 二,安装虚拟机        1.找到系统镜像     2.打开VirtualBox选择新建,创建虚拟硬盘。        3.添加虚拟光驱加载要装系统的镜像。        4.启动虚拟机。        5.完成安装 三,设...

用户被锁定

这种情况很少发生,偏偏被我碰到了,我按照网上一个哥们的教程去解决电脑问题 (请勿模仿,很麻烦的) -------------------------------------------------  1、右键单击“计算机”——”管理“——”本地用户和组“——”用户“找到administrator电脑图标右键单击”属性“将”禁用此用户“选项勾掉。      ...