69.android 简单的沉浸式状态栏,设置状态栏颜色,以及给小米手机设置状态栏文字颜色+取消状态栏,隐藏虚拟按键,并且全屏

2023-10-30

//第一种 简单的方式,直接把状态栏顶掉。为透明色。

 

 

//在Activity里使用:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
    int flagTranslucentStatus = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
    int flagTranslucentNavigation = WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        Window window = getWindow();
        WindowManager.LayoutParams attributes = window.getAttributes();
        attributes.flags |= flagTranslucentNavigation;
        window.setAttributes(attributes);
        getWindow().setStatusBarColor(Color.TRANSPARENT);
    } else {
        Window window = getWindow();
        WindowManager.LayoutParams attributes = window.getAttributes();
        attributes.flags |= flagTranslucentStatus | flagTranslucentNavigation;
        window.setAttributes(attributes);
    }
}

//第二种,给状态栏设置颜色,小米手机可设置状态栏文字颜色。

 //设置状态栏颜色在Activity里使用:

//因为不是所有的系统都可以设置颜色的,在4.4以下就不可以。。有的说4.1,所以在设置的时候要检查一下系统版本是否是4.1以上
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    Window window = getWindow();
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.setStatusBarColor(getResources().getColor(R.color.Red));
}

 

//也可以这样设置:

SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setStatusBarTintResource(R.color.white);

 

//------------------------------------------------以下是小米手机给状态栏设置字体颜色------------------------------------------------
//如果你的小米手机是6.0以上的系统,那就需要加上:

this.getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
//小米手机设置状态栏字体颜色为黑色
private void setStatusBarLightMode() {
    if (this.getWindow() != null) {
        Class clazz = this.getWindow().getClass();
        try {
            int darkModeFlag = 0;
            Class layoutParams = Class.forName("android.view.MiuiWindowManager$LayoutParams");
            Field field = layoutParams.getField("EXTRA_FLAG_STATUS_BAR_DARK_MODE");
            darkModeFlag = field.getInt(layoutParams);
            Method extraFlagField = clazz.getMethod("setExtraFlags", int.class, int.class);
            extraFlagField.invoke(this.getWindow(), darkModeFlag, darkModeFlag);//状态栏透明且黑色字体
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

//取消状态栏:

//取消状态栏
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

 

//设置状态栏字体颜色  第二种方式:

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            setTranslucentStatus(true);
        }
        SystemBarTintManager tintManager = new SystemBarTintManager(this);
        tintManager.setStatusBarTintEnabled(true);
        tintManager.setStatusBarTintResource(R.color.white);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
//获取窗口区域
            Window window = getWindow();
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            //设置状态栏颜色
            window.setStatusBarColor(getColor(R.color.white));

//设置显示为白色背景,黑色字体
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
        }

 

@TargetApi(19)
private void setTranslucentStatus(boolean on) {
    Window win = getWindow();
    WindowManager.LayoutParams winParams = win.getAttributes();
    final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
    if (on) {
        winParams.flags |= bits;
    } else {
        winParams.flags &= ~bits;
    }
    win.setAttributes(winParams);
}
/**
 * 隐藏虚拟按键,并且全屏
 */
private void hideBottomMenu() {
    //隐藏虚拟按键,并且全屏
    if (Build.VERSION.SDK_INT < 19) {
        View v = this.getWindow().getDecorView();
        v.setSystemUiVisibility(View.GONE);
    } else {
        View decorView = getWindow().getDecorView();
        int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN;
        decorView.setSystemUiVisibility(uiOptions);
    }
}

 

//--------------------------------------------------------------------完---------------------------------------------------------------------------

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

69.android 简单的沉浸式状态栏,设置状态栏颜色,以及给小米手机设置状态栏文字颜色+取消状态栏,隐藏虚拟按键,并且全屏 的相关文章

  • Android 4.4.2 - java.lang.RuntimeException:执行未恢复的活动停止

    我在 4 4 2 设备上遇到此异常 在 Android 4 3 或更低版本的设备上无法重现 设置是我有一个家庭活动 支持的子类ActionBarActivity 家庭活动检查布尔标志 如果为真 则启动启动画面活动 是的 理想情况下启动画面出
  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • Android 2.2 SDK - Droid X 相机活动无法正常完成

    我注意到我在 Droid X 上调用的默认相机活动与我的 Droid 和 Nexus One 上的默认相机活动看起来不同 在 Droid 和 Nexus One 上选择 确定 后 活动将完成 Droid X 有一个 完成 按钮 它将带您返回
  • TypedArray 的 getResourceId 方法

    我正在阅读有关的文档获取资源Id https developer android com reference android content res TypedArray html getResourceId int 20int 方法 它说
  • 对话框上的 EditText 不返回任何文本

    我太累了 找不到错误 我没有发现任何错误 但我没有从 editText 收到任何文本 请看下面的代码 活动密码 xml
  • Firebase 数据库快速入门处理计数的方式安全吗?

    我想为文章点赞创建一个增量字段 我指的是这个链接 https firebase google com docs database android save data save data as transactions https fireb
  • 如何获取.so文件的依赖项列表?

    假设我有libFoo so为 android arm 编译 我不确定它链接到什么STL实现 有options http developer android com intl ru ndk guides standalone toolchai
  • 在 Android 中长按时从操作模式中删除后退/主页按钮

    我已经在里面长按实现了上下文操作模式recycler view 为此我打电话给ActionModeCallback从创建动作模式开始 创建动作模式时 默认显示后退箭头 检查如下 单击后退箭头 操作模式将关闭 现在我想要hide or rem
  • Renderscript 示例构建错误

    所以我想尝试使用 RenderScript 的示例 并在 Eclipse 中导入了 HelloWorld 但它给了我这样的错误 2011 10 25 13 10 48 HelloWorld home mileoresko workspace
  • 应用内结算错误

    我的 UNMANAGED 应用内购买无法正常工作 在它完美运行之前 我可以使用测试帐户成功购买 但它突然不起作用了 因为我记得我对商家帐户所做的只是添加更多 2 4 个测试帐户 添加后 我的应用内购买将不起作用 所以我更新了公钥并上传了一个
  • 尝试在模拟器上安装第二个 flutter 应用程序时出错

    我创建了一个简单的 flutter 应用程序并在 android 模拟器上运行它 效果还不错 现在我创建了另一个 当我尝试在模拟器上运行它时 我得到 Error ADB exited with exit code 1 adb failed
  • 如何防止布局的方向改变,而不是整个屏幕/活动的方向改变

    我需要一个子布局 可以是任何布局 例如FrameLayout or RelativeLayout 忽略方向变化并始终保持横向 但不是它的父级或任何其他兄弟布局 视图 它们应该相应地改变它们的方向 因此 我不能使用setRequestedOr
  • finish() 完成活动但它仍然在后台

    我有一个关于 android studio 中活动的 finish 方法的问题 我有这个简单的代码 public class MainActivity extends AppCompatActivity Override protected
  • 如何持续更新MPAndroidChart中的Y轴值

    我希望 LineChart 中的轴能够实时调整其最大值和最小值 当新数据的 Y 值增加 正值和负值 时 像 ResetAxisMaxValue 和 ResetAxisMinValue 这样的函数可以很好地工作 但是 一旦信号再次变低 Y 值
  • Firebase ANR - 甚至不使用 firebase

    随着 GMS 的最新更新 引入了新的 ANR 如果您退出应用程序 然后返回 则 ANR 就会初始化 线程跟踪似乎指向 Firebase 但我什至从未开始使用 Firebase 我猜它一定是新的 GMS 包的一部分 06 11 00 34 0
  • 如何在 Android NDK 中创建新的 NativeWindow 而无需 Android 操作系统源代码?

    我想编译一个 Android OpenGL 控制台应用程序 您可以直接从控制台启动 Android x86 运行 或者从 Android x86 GUI 内的 Android 终端应用程序运行 这个帖子 如何在 Android NDK 中创
  • JavaDoc 在 Android 项目中不起作用

    我在 Ubuntu 10 04 上使用 Eclipse 3 5 2 进行 Android 开发 我安装了 来自 Ubuntu 存储库的 Sun JDK Eclipse 3 5 2 经典 来自 eclipse org 解压到 opt ecli
  • android httprequest java.net.UnknownHostException

    我想用android发出http请求 是使用这个 void testHTTP HttpClient httpClient new DefaultHttpClient HttpUriRequest request new HttpPost h
  • 安卓的限制

    我需要构建一个应用程序 该应用程序拍摄相机图像并将其上传到网络 在网络上进行一些处理并返回真 假 我在这方面遇到了一些问题 希望得到澄清 1 我的应用程序有什么方法可以知道 Android 相机捕获的图像吗 我从这里明白了什么 Androi
  • 按字母顺序过滤 Firestore 数据以对 Google Cloud 中的文档读取进行分类/减少

    基于这样的事实Cloud Firestore 不支持全文搜索 https firebase google com docs firestore solutions search到目前为止 我决定问这个question https stack

随机推荐

  • 【数据分析入门】第二周 EXCEL数据透视表笔记

    第二周 Excel数据透视表笔记 一 数据透视表 数据透视表的主要功能是将数据聚合 按照各子段进行sum count 的运算 操作 选择想要的数据区域 选择插入 创建透视表 此时会新建一个Sheet 将原始数据和汇总计算数据分离 数据透视表
  • 【c语言】利用指针求三个数的最大数和最小数

    比较费空间的笨方法 include
  • xtu 1397 Patchouli的金字塔

    题目描述 Patchouli想要绘制一个金字塔 金字塔的图案由n个正三角形和倒三角形堆叠而成 具体的绘制方法如下 每个三角形由 和 组成 分别代表三角形的顶点和三条边 第一行只包含一个正三角形 其余各行的三角形按照 正三角形 倒三角形 正三
  • STM32----ADC模数转换与DAC数模转换

    目录 ADC模数转换 DAC数模转换 ADC模数转换 指模 数转换器或者模拟 数字转换器 将连续变量的模拟信号转换为离散的数字信号的器件 典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号 特点 STM32通道组 1 规则通道
  • 采用 Nacos 和 Apollo 作为配置中心时@ConfigurationProperties、@RefreshScope的正确用法

    心中剑 手中剑 剑起 剑来 剑魂 剑起 众所周知 当前各个互联网企业采用的配置中心中 无外乎 Nacos 和 Apollo 最为知名 今天不去比较优劣 因为适合自己的才是最好的 而是在两个框架出现过渡时 有些用法或者编码习惯需要调整 否则配
  • 配置MATLAB环境

    配置MATLAB环境 MATLAB是一种强大的数值计算和科学编程环境 它提供了许多功能和工具 用于数据分析 算法开发和模型仿真 在本文中 我将详细介绍如何配置MATLAB环境 步骤1 下载和安装MATLAB 首先 您需要从MathWorks
  • 哈希表(散列表)的平均查找成功/失败长度

    计算哈希地址的方法 称之为哈希函数 常见的计算哈希地址方法有 1 直接定址法 2 除留余数法 3 数字分析法 4 平方取中法 本文所分析的是使用除留余数法计算哈希地址这类 的平均查找成功长度和查找失败长度 对于除留余数法的哈希函数 散列函数
  • GB 9706.1-2020医疗设备爬电距离和电气间隙计算实例

    GB 9706 1 2020医疗设备爬电距离和电气间隙计算实例 本文只就所示路径的爬电距离 电气间隙的计算按照GB 9706 1 2020标准进行验证 路径的符合性或在文字中加以修改 不作判定 我们先来看案例背景 有上文可知 污染等级PD2
  • linux怎吗卸载openssh,卸载并重装openssh(解决ssh -1问题)

    在集群测试过程中 有一个节点的openssh装的有问题 需要ssh 1 才能登录 导致多节点的mpi无法使用 修改配置文件什么的也没有用 也许是我改的不对 最后决定直接重装openssh 1 卸载 先查看openssh的相关包 root n
  • 内存管理单元MMU简介(只有具有MMU才支持真正的操作系统,微软,linux,unix等)

    引言 MMU Memory Management Unit 即内存管理单元 是现代CPU架构中不可或缺的一部分 MMU主要包含以下几个功能 虚实地址翻译 在用户访问内存时 将用户访问的虚拟地址翻译为实际的物理地址 以便CPU对实际的物理地址
  • socket inet_pton

    inet pton Linux下这2个IP地址转换函数 可以在将IP地址在 点分十进制 和 整数 之间转换 而且 inet pton和inet ntop这2个函数能够处理ipv4和ipv6 算是比较新的函数了 inet pton函数原型如下
  • vue 打开一个新页面_vue如何打开新窗口

    项目中需要点击打开新页面另外展示数据 在vue中如何进行的 目前我能解决的就是只有一种方案 网上说的方案没有一种成功 为何呢 最主要原因是 app中只能有路由跳转 不能再有其他内容时才会打开时是全新的一个页面 否则就会新开页面内容与APP中
  • 《Roller: Fast and Efficient Tensor Compilation for Deep Learning》

    Roller Fast and Efficient Tensor Compilation for Deep Learning 用于深度学习 快速高效的张量编译器 作者 微软亚洲研究院以及多伦多大学等多所高校 摘要 当前编译为了产生高效的ke
  • 微服务链路追踪——skywalking

    前言 skywalking是分布式系统的应用程序性能监视 分布式链路追踪工具 跟听云 博瑞等一系列服务器监控组件服务类似 开源的相关类似组件有zipkin pinpoint等 由于笔者所在项目组准备升级springcloud 缺少相关链路监
  • [U3D] ShaderLab学习笔记(一) Shader的语法基础

    U3D ShaderLab学习笔记 一 Shader的语法基础 Shader的分类 Shader的代码构成 整体架构 代码分区介绍 ShaderLab的变量 基础变量类型 结构体struct 属性变量声明语法 Attribute Color
  • 【DRAM存储器四】DRAM存储器的架构演进-part1

    个人主页 highman110 作者简介 一名硬件工程师 持续学习 不断记录 保持思考 输出干货内容 参考书籍 Memory Systems Cache DRAM Disk 上篇文章我们分析了DRAM存储器的基本原理和现代DDR4的内部结构
  • 1.44寸TFT-LCD显示屏取模教程

    目录 1 软件包 点击下载 2 LCD ASCLL码取模教程 3 LCD汉字取模教程 4 LCD图片取模教程 1 软件包 点击下载 2 LCD ASCLL码取模教程 1 打开取模软件 2 左上角模式选择为字符模式 3 点击选项 4 设置如下
  • 计算机主机报警 声,电脑开机报警4声长鸣解决教程

    电脑开机报警是什么原因 首先要清理一下内存条 拆开主机后 用手指把内存插槽的卡子向两边扳动 拆除内存条 然后用橡皮筋擦擦 然后将内存条对准卡口 扶好内存条两端 稍稍用力按下安装内存条 然后开机看一下能不能启动电脑 电脑开机电脑图解 1 如果
  • 数据结构——双链表(C语言)

    目录 编辑 双链表的初始化 双链表的打印 双链表的尾插 双链表的头插 双链表的尾删 双链表的头删 双链表pos位置之前的插入 双链表pos位置的删除 关于顺序表和链表的区别 上篇文章给大家讲解了无头单向循环链表 它的特点 结构简单 一般不会
  • 69.android 简单的沉浸式状态栏,设置状态栏颜色,以及给小米手机设置状态栏文字颜色+取消状态栏,隐藏虚拟按键,并且全屏

    第一种 简单的方式 直接把状态栏顶掉 为透明色 在Activity里使用 if Build VERSION SDK INT gt Build VERSION CODES KITKAT int flagTranslucentStatus Wi