沉浸式状态栏的简易实现
前言
在android开发的过程中,经常会涉及到沉浸式状态栏的问题,说白了,就是手机屏幕顶部栏的颜色显示问题,为了实现美感一体的效果,许多app都已经开始了沉浸式状态栏的显示,这里,我也简单介绍一个沉浸式状态栏的类StatusBarUtil,这个类使用简单并很好的解决了兼容问题。
今天涉及的内容有:
- StatusBarUtil工具类的方法使用讲解(含效果图)
- 在MainActivity中使用代码
- 项目结构图
一. StatusBarUtil工具类的方法使用讲解
一般在未实现沉浸式状态栏的时候,(为了方便展示,我将activity背景设置成粉红色)状态栏是这样的:
1.1 设置状态栏背景透明
//设置状态栏背景透明
StatusBarUtil.immersive(mContext);
效果图如下:
1.2 给状态栏设置特定颜色
这里将状态栏设置成红色
//设置状态栏背景红色
StatusBarUtil.immersive(mContext, ContextCompat.getColor(mContext,R.color.red));
效果图
1.3 设置状态栏背景色的透明度
这里将状态栏背景设置成红色,透明度设置成半透明(注:透明度的值在0-1之间),设置代码如下:
//设置状态栏背景半透明红
StatusBarUtil.immersive(mContext, ContextCompat.getColor(mContext,R.color.red),0.5f);
效果图
除了可以设置状态栏的背景色外,StatusBarUtil 还可以设置状态栏文字的颜色,目前状态栏文字颜色只支持两种:白色和黑色
1.4 设置状态栏黑色字体
设置状态栏黑色字体有两种方法
//设置状态栏文字变黑
//方法一
StatusBarUtil.darkMode(mContext);
//方法二
StatusBarUtil.darkMode(mContext,true);
效果图
1.5 设置状态栏白色字体
//设置状态栏文字变白
StatusBarUtil.darkMode(mContext,false);
效果图
1.6 综合设置状态栏属性
若你想设置状态栏文字为黑色的同时,还能设置状态栏背景色及其透明度,你可以调用以下方法(以背景色蓝色半透明为例):
//设置状态栏字体变黑,设置状态栏背景色和状态栏背景色的透明度
StatusBarUtil.darkMode(mContext, ContextCompat.getColor(this,R.color.blue),0.5f);
效果图
StatusBarUtil源码在demo中有,这里就不做介绍了。下面讲下StatusBarUtil在在MainActivity中的使用
二.在MainActivity中使用代码
由于布局比较简单,这里就不贴出MainActivity对应的activity_main.xml代码了,下面给出StatusBarUtil在MainActivity中调用的具体代码:
public class MainActivity extends BaseActivity {
@BindView(R.id.tv)
TextView mTv;
@Override
public int getContentViewId() {
return R.layout.activity_main;
}
@Override
public void initData() {
mTv.setText("大家好才是真的好");
//设置状态栏背景透明
StatusBarUtil.immersive(mContext);
// //设置状态栏背景红色
// StatusBarUtil.immersive(mContext, ContextCompat.getColor(mContext,R.color.red));
// //设置状态栏背景半透明红
// StatusBarUtil.immersive(mContext, ContextCompat.getColor(mContext,R.color.red),0.5f);
// //设置状态栏文字变黑
// StatusBarUtil.darkMode(mContext);
// StatusBarUtil.darkMode(mContext,true);
// //设置状态栏文字变白
// StatusBarUtil.darkMode(mContext,false);
//设置状态栏字体变黑,设置状态栏背景色和状态栏背景色的透明度
StatusBarUtil.darkMode(mContext, ContextCompat.getColor(this,R.color.blue),0.5f);
}
@Override
public void setListener() {
}
}
三.项目结构图
沉浸式状态栏的简易实现
注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权
标签:
沉浸式状态栏
, StatusBarUtil
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
2018-03-06 SearchView的全面解析
2018-03-06 网页聊天软件
2018-03-06 android实现免费短信验证
2018-03-06 使用 JavaScript开发的跨平台音乐、书籍播放器
2018-03-06 Bmob实现android云端存储
2018-03-06 基于JWT的Token开发案例
2018-03-06 Vue-cli + Express 构建的SPA Blog(前后分离)