Android沉浸式状态栏主题颜色切换。

这篇博客讲述了如何在Android应用中实现主题切换,并动态改变沉浸式状态栏的颜色。作者首先介绍了设置沉浸式状态栏的基本步骤,包括在布局中添加特定属性和在Activity中设置状态栏颜色。接着,详细讲解了主题切换的实现,通过自定义属性并在XML布局中应用,确保ToolBar颜色随主题变化。此外,还讨论了如何根据主题切换状态栏颜色,并提供了相关代码示例。最后,作者鼓励读者分享和交流,共同进步。

最近写了个小功能,切换应用主题,从而改变沉浸式状态栏的颜色。

功能很简单,下面贴一下详细代码,有不懂的欢迎交流,或者有更好的想法,也欢迎相互学习。

首先:沉浸式状态栏呢,文章有很多。我这有我自己的一种。

 

注:我这选择还有点小问题没有处理,小问题小问题。嘿嘿

一、沉浸式状态栏

首先布局加上这两个属性,然后activity的主题设置为NoActionBar。这个很简单。至于使用toolbar还是什么,自己决定。

我这里就用了个普通的布局当toolbar使用。android:background="?attr/toolbarBgColor"  这个颜色呢是自定义的属性

随后会随着主题切换而切换,定义随后会介绍。

 

随后在activity onCreate方法中设置statusBar颜色,注意要在setContentView之前

参数color呢就是状态栏的颜色。

到这里,沉浸式状态栏就算是弄完了。

二、主题切换

首先,我们需要在attr.xml中自定义一些属性。


随后,在你的布局xml文件toolbar中设置背景:android:background="?attr/toolbarBgColor"

这样,你切换主题的时候,他就会根据主题切换相应的颜色。

 

以上是改变toolbar的颜色。下面介绍下改变statusBar的颜色.

红框区域呢,是对上面  setActionBarColor的进一步扩展,setAppTheme和getAppTheme呢,是获取你所修改的主题ID。

默认MainAppTheme。 setStatusBarTintColor呢是把上面设置指定颜色修改为,根据主题切换,获取主题的statusBarColor

颜色来进行设置。bean是我的recyclerView Item实体类中

至于setAppTheme和getAppTheme。你是所设置的主题。你可以写一个ListView,RecyclerView颜色列表。

选中其中的某一项的时候,来存储对应的主题,然后重启Acitivity。(在activity创建的时候添加到一个数组中,销毁时移除)。

 

最后简单写下我的设置主题功能:比较笨戳,但是个人觉得还行。

实体类:

 

数据:这里的R.color.XXXX  就是对应主题中的 toolbarBgColor   用来设置RcyclerView item背景颜色

适配器:

这里很简单了。就不具体介绍了。

 

以上,就是动态的改变状态栏,toolbar颜色。也就是主题切换。可以能代码比较繁琐。

或是有欠佳的地方。欢迎读者反馈,一块交流,一块分享、学习。

 

 

 

哈哈哈~~~~~~~~~~~~~~~~~~~~~~

附上一句艾弗森经典:

                   No matter what ,just do not give up .Always believe that your dream can come true & just keep working for what you want to achieve。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值