Android夜间模式初探

本文探讨了Android夜间模式的实现,重点介绍了使用AppCompatDelegate的方法。通过新建values-night和drawable-night文件夹,并设置DayNight主题,实现了夜间模式。文中提到了两种设置夜间模式的代码方式,一种立即生效但只影响当前Activity,另一种全局生效。在实际应用中,结合两种方法以实现实时切换。在实现过程中遇到并解决了一些问题,如黑屏和Activity异常回调。最后,提供了相关参考资料。
摘要由CSDN通过智能技术生成

Android夜间模式初探

在网上搜索夜间模式的资料,有很多,弄了挺久的,终于弄的差不多了。

用了Android自带的AppCompatDelegate

文件夹和xml准备

当然要先新建values-night和drawable-night(看需求)文件夹,让后让style继承自Theme.AppCompat.DayNight

App里用的NoActionBar风格,所以这里选.NoActionBar的

代码实现

在网上看了一些资料之后,发现了两种方法:
第一种:调用AppCompatActivity里的getDelegate()获取AppCompatDelegate对象,然后在调用setLocalNightMode()方法设置夜间模式

if(true) {
   
	getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
} else {
   
	getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}

第二种:在onCreate()方法里的setContentView()方法前,直接调用AppCompatActivity里的静态方法setDefaultNightMode()来设置

if (true) {
   
	AppCompatDelegate.setDefaultNightMode(AppCompatDelegate
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值