Android隐藏状态栏和修改状态栏颜色_亲测有效

news2024/12/24 20:50:56

本文记录了隐藏状态栏和修改状态栏颜色以及电量、WiFi标志等内容的模式显示,亲测有效。

1、隐藏屏幕状态栏

public void hideStatusBar(BaseActivity activity) {
    Window window = activity.getWindow();
    //没有这一行无效
    window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    WindowManager.LayoutParams attributes = window.getAttributes();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P){
        Log.e(TAG, "onCreate: SDK_INT= "+ Build.VERSION.SDK_INT );
        //如果没有这一行就会把状态栏变成纯黑的一条什么都看不清了
        attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
    }
    window.setAttributes(attributes);
}

隐藏状态栏让下面布局完全铺满屏幕。用手从上边向下滑动可以展示状态栏,但是过几秒会再次自动隐藏。这里提到的首次是因为你第一次滑下来的是隐藏的状态栏,过几秒会自动收回去,在状态栏露出来以后此时再次向下滑才是蓝牙、数据开关的通知栏。

要注意Build.VERSION_CODES.P以上需要设置:

        attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;如果没有这一行就会把状态栏变成纯黑的一条什么都看不清了

1.1 隐藏状态栏

StatusBarUtil.getInstance().hideStatusBar(this);

  1. 设置屏幕状态栏

与隐藏titleBar不同,这里是修改了状态栏的颜色,两个参数:第一代表设置的颜色,第二代表状态栏展示内容的深色和浅色两种UI样式,颜色值属于浅色;参数二需要传入true执行深色样式,否则可能造成状态栏内容看不清。

lightColor代表在黑白两个模式设置颜色,true展示wifi、电池、时间等为黑色,false时以上为白色,所以请设置色值的时候注意一下用哪个合适。比如黑色状态栏遇到深色模式的wifi、电池、时间,就会两眼一抹黑。
 

    public void setStatusBar(BaseActivity activity,int color, boolean lightColor) {
        Log.e("setStatusBar  ", "currentThread: "+Thread.currentThread().getName() );
        activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        activity.getWindow().setStatusBarColor(color);
        if (lightColor) {
            activity.getWindow().getDecorView()
                    .setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
        } else {
            activity.getWindow().getDecorView()
                    .setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
        }

    }

2.1修改红色状态栏背景,浅色模式:

StatusBarUtil.getInstance().setStatusBar(BaseActivity.this, getResources().getColor(p), false);

2.2 修改红色状态栏背景,深色模式:

StatusBarUtil.getInstance().setStatusBar(BaseActivity.this, getResources().getColor(p), true);


注意:在hideStatusBar()隐藏状态栏的情况下再去设置状态栏颜色是不生效的,!!!

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

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

相关文章

瑞数(rs6)接口以及源码

测试代码截图如下:调用接口即可直接用 需要dd 有想要学习教程的也能够找我。 如有需求,欢迎+我绿泡泡。 期待你的加入!

Java | Leetcode Java题解之第189题轮转数组

题目: 题解: class Solution {public void rotate(int[] nums, int k) {k % nums.length;reverse(nums, 0, nums.length - 1);reverse(nums, 0, k - 1);reverse(nums, k, nums.length - 1);}public void reverse(int[] nums, int start, int end) {whil…

ZYNQ MPSOC烧写问题记录

1、如果带有ARM代码,则ZYNQ MPSOC烧写的烧写是通过ViTIS进行的,通过JTAG模式进行烧写,如下图的PS_MODEx配置成0000,这个只与硬件相关,硬件拉高拉低。 2、如果不带ARM代码,则烧写过程与前版本一致。

PaddleOCR的快速使用

一、简介 PaddleOCR 旨在打造一套丰富、领先、且实用的 OCR 工具库,助力开发者训练出更好的模型,并应用落地。 支持多种 OCR 相关前沿算法,在此基础上打造产业级特色模型PP-OCR、PP-Structure和PP-ChatOCRv2,并打通数据生产、模型…

vue-cli 搭建项目

创建 router 目录 在一个.js文件中添加 打开外部命令 打开外部命令后,在指令栏输入npm i vue-router3.5.3 ,等待下载 下载完成后 在 main.js 中配置路由 输入这些后,基本的配置就实现了 最后进行测试,验证是否配置 或者打开外部命…

解决指南:如何应对错误代码 0x80070643

在使用Windows操作系统过程中,用户可能会遭遇各种错误代码,其中错误 0x80070643是比较常见的一种。这个错误通常在安装更新或某些软件时发生,尤其是在微软的Windows Defender或其他Microsoft安全产品以及.NET Framework更新过程中更为常见。本…

Linux的fwrite函数

函数原型: 向文件fp中写入writeBuff里面的内容 int fwrite(void*buffer,intsize,intcount,FILE*fp) /* * description : 对已打开的流进行写入数据块 * param ‐ ptr :指向 数据块的指针 * param ‐ size :指定…

19.《C语言》——【如何理解static和extern?】

🎇开场语 亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能&a…

操作系统速成笔记五

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、前言🚀🚀🚀二、正文☀️☀️☀️1.内存映射文件(1)方便程序员访问文件数据(2&#xff09…

小红书多账号管理平台哪个好用?可以快速监测多个小红书账号的数据吗?

随着品牌营销战线的不断扩展,小红书已经成为企业和个人品牌竞相展示的舞台。但是,随之而来的多账号管理问题也让众多运营者头疼不已。一个优秀的多账号管理平台,能让你事半功倍,轻松监控和分析账号数据。 如今,市面上出…

【proteus 51单片机入门】8*8led点阵

文章目录 前言如何点亮led点阵仿真图代码点亮led核心代码解析 爱心代码 滚动总结 前言 在嵌入式系统的开发中,LED点阵显示器是一种常见的显示设备,它可以用来显示各种图形和文字,为用户提供直观的信息反馈。本文将介绍如何使用Proteus软件和…

亿发微商城:从社交流量到生意增量,拓客+变现双收益

亿发微商城提供私域经营必备的系统 、服务和技术支持等全套解决方案。省去开发成本,还原品牌调性,打通社交渠道,经营私域会员,带来传统电商和线下门店之外的生意增量。

【linux/shell案例实战】解决Linux和Windows的换行符CRLF和LF问题

目录 一.什么是Linux 和 Windows 的换行符 CRLF 和 LF 二.使用Linux 中命令 dos2unix 和 unix2dos 实现CRLF 和LF的转换 三.使用 windows 中的代码编辑器实现 CRLF 和 LF 的转换(Notepad) 一.什么是Linux 和 Windows 的换行符 CRLF 和 LF CR是Carria…

<sa8650>QCX ID16_UsecaseRawLiteAuto 使用详解

<sa8650>QCX ID16_UsecaseRawLiteAuto 使用详解 一、前言二、ID16_UsecaseRawLiteAuto拓扑图三、UsecaseRawLiteAuto拓扑图 解析3.1 camxUsecaseRawLiteAuto.xml3.2 camxRawLiteAuto.xml四、测试一、前言 我们在使用QCX时,如果由于使用的摄像头自带了ISP,那么可能不需要使…

iOS开发中用到的自定义UI库

文章目录 前言cell 左右滑动菜单日历组件仿QQ 侧滑抽屉仿探探、陌陌的卡牌滑动库头部缩放视图自定义UITabbar刮刮乐广告横幅 前言 本文中的UI组件,是作者在移动应用开发中都用到过的。 确实,找到对的三方库可以快速帮助我们构建App, 极大程度上提高了生…

吉利银河L6(官方小订送的3M) 对比 威固vk70+ks15

吉利送的号称价值2000的3M效果 撕膜重贴 威固vk70ks15 之后的效果 // 忘记测反射的热量了 可以验证金属膜是反射热而不是吸热 金属膜 手机GPS还能用吗 亲测 能用 太阳能总阻隔率 3M貌似20%出头 威固前档55% 侧后挡高一点不超过60% 夏天真实太阳发热能量 即阻隔率55%到60% …

[leetcode hot 150]第一百二十二题,买卖股票的最佳时机Ⅱ

题目: 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大…

python 图像数据

//***********************安装库***********************// pip install pillow //安装Pillow库,Image类是Pillow库中的类 pip install numpy //安装numpy库,numpy是数值计算扩展库 pip install matplotlib import numpy as np from PIL import Imag…

webpack源码深入--- webpack的编译主流程

webpack5的编译主流程 根据watch选项调用compiler.watch或者是compiler.run()方法 try {const { compiler, watch, watchOptions } create();if (watch) {compiler.watch(watchOptions, callback);} else {compiler.run((err, stats) > {compiler.close(err2 > {callb…

Linux 生产消费者模型

💓博主CSDN主页:麻辣韭菜💓   ⏩专栏分类:Linux初窥门径⏪   🚚代码仓库:Linux代码练习🚚   🌹关注我🫵带你学习更多Linux知识   🔝 前言 1. 生产消费者模型 1.1 什么是生产消…