最近工作中正好遇到这个问题,其实这个问题的解决方案现在已经非常多了,正好遇到就记录一下。

沉浸式状态栏有很多种,实现方案都不太一样,现在我记录最简单的两种。更多内容可参考Android4.4、Android5.0+状态栏颜色、透明等设置

1.状态栏透明

设置状态栏透明是实现沉浸式状态栏的一种方法,状态栏透明之后,系统会自适应的将状态栏颜色设置为布局的背景颜色。这样实现的状态栏和布局背景相似,但是会多一层灰色阴影。导航栏也是一样的效果。

注意:设置状态透明之后,界面布局会上铺,可以在xml文件的根布局进行相关设置android:fitsSystemWindows="true"。

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

getWindow().setStatusBarColor(Color.TRANSPARENT);

半透明状态栏.png

2.设置状态栏颜色

如果不想让状态栏有灰色的阴影,可以直接设置状态栏的颜色,或者直接设置状态栏透明,注意,这里的透明和上面的透明不是一种效果,这里的透明是状态真的透明,不会有灰色阴影,背景颜色会铺满状态栏和导航栏,

Window window = getWindow();

//After LOLLIPOP not translucent status bar

window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

//Then call setStatusBarColor.

window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

window.setStatusBarColor(getResources().getColor(R.color.test_bg));

设置状态栏颜色.png

以上两种都是比较简单的设置方法,需要注意该设置要在setContentView之前执行,至于图片铺上状态栏,以后再试一试。

用第二种方法设置的状态栏或者导航栏可能会改变状态栏和导航栏字体的颜色,目前网上除了小米和魅族提供的设置状态栏字体颜色的方法,其他厂商还不能改变状态栏/导航栏字体颜色。系统原本只有两套显色方法,白色和黑色,可以在代码中调用window.getDecorView().setSystemUiVisibility进行相应的设置,设置亮色主题或暗色主题,改变状态栏/导航栏字体颜色。

Window window = getWindow();

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

| View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);

window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

// 状态栏(以上几行代码必须,参考setStatusBarColor|setNavigationBarColor方法源码)

window.setNavigationBarColor(Color.TRANSPARENT);

android导航栏字体,Android状态栏/导航栏颜色相关推荐

  1. android 程序更换字体,Android修改自己程序字体的方法详解

    Android提供三种字体:"Sans","serif"和"monospace". 1.在Android XML文件中设置字体可以采用and ...

  2. android控件字体,android 设置控件的颜色字体的方法

    1.用代码设置控件的颜色: int b =  getResources().getColor(R.drawable.blue);//得到配置文件里的颜色 mButton.setTextColor(b) ...

  3. android 全局换字体,Android 全局替换字体

    1. 替换全局字体 需要引入依赖 // 替换全局字体使用 api 'com.android.support:support-v13:28.0.0' 在 res 目录下创建一个 font 目录,将用到的 ...

  4. android应用添加字体,android应用 修改字体

    在androidmanifest 中 theme 中配置 @color/colorPrimary @color/colorPrimaryDark @color/colorAccent @font/po ...

  5. android studio 改字体,Android Studio设置、改变字体和主题的方法

    1.步骤:File >> settings >> Appearance & Behavior >>Appearance >> 来到修改界面 如下 ...

  6. android 使用网络字体,android使用指定的字体

    1.Android提供三种字体:"Sans","serif"和"monospace".采用android:typeface,例如androi ...

  7. android app替换字体,Android APP更换字体策略精要

    前言 近期项目需要在我们的APP中使用指定的字体库.经过搜集资料,研读源码,和别人探讨请教,最终产出了一些比较好的方案.不敢专享,写成文章分享出来,希望对大家的实际开发工作有所帮助.喜欢探讨Andro ...

  8. android应用添加字体,android中的自定义字体(适用于整个应用程序...

    您可以使用字样为textview中的文本设置自定义字体.因此,每当需要textview的自定义字体时,都可以使用以下字体. activity_main.xml中 android:orientation ...

  9. android源代码居中字体,Android (布局优化) TextView实现drawable图标大小 位置与第一行文本居中...

    先看大众点评的购买须知 大众.png 如上图,需求在每条提示语句前加一个小圆点,我刚看到需求就想到用 android:drawableLeft 来做,可做完发现:当TextView内容为单行的时候是没 ...

  10. android沉浸式 字体,Android沉浸式状态栏背景色以及字体颜色的修改

    在activity中设置透明状态栏 的思路: 1.让activity的布局全屏 此时布局会和状态栏重叠 2.让布局最上方预留出和状态栏高度一样的高度,将状态栏的背景色设置为透明 效果如下: 一般是在s ...

最新文章

  1. 亿级商品详情页架构演进技术解密
  2. 虚拟机下判断文件或目录是否存在
  3. 在腾讯,我的试用期总结!
  4. CIO:辩证看待云计算 游戏规则已改变
  5. 透過 OpenNI 建立 Kinect 3D Point Cloud
  6. html5_0_文章_分级_分段
  7. 华为AR engine 应用开发学习教程
  8. asp.net core监控—引入Prometheus(四)
  9. C语言,功能一、利用一维数组和选择法对成绩高低排序,功能二、输出对应的学号,功能三、查找对应学生成绩
  10. “iQOO”怎么读?vivo官宣“发音”视频
  11. 异常将上下文初始化事件发送到类的侦听器实例._Java CLassLoader类加载器详解,一点课堂(多岸学院)...
  12. stream 多个字段分组_Python Pandas对Excel数据的分组聚合和数据透视
  13. CentOS6.x安装zabbix
  14. Delphi编程(二)__Delphi安装
  15. Win32的setlocale详解
  16. 搜狐财报:铠甲不硬,需要新杀手锏
  17. Paddle-Lite 安卓端部署
  18. java文字格斗游戏
  19. 22.11.30打卡 记忆化搜索2水题
  20. 【VS消除警告】VS消除特定警告/安全函数警告C4996 strncpy unsafe……

热门文章

  1. 火影忍者ol手游服务器注册上限怎么办,火影忍者ol手游服务器人数爆满怎么进_服务器爆满解决方法...
  2. UVa OJ 10105
  3. 计算机打印机端口号,网络打印机端口号.doc
  4. Linux内核-CFS调度下带宽控制(Bandwidth Control)
  5. 太可怕了!上海交大毕业的网易前员工曝身患重病后,被残酷裁员!
  6. 邮件发回软件错误信息
  7. 简历上怎样写期望薪资,才能让你面试时工资翻倍?
  8. Arduino基础入门篇25—红外遥控
  9. [Bilingual]Klein四元群的四个例子Four examples of Klein four-group
  10. pr导入无法打开磁盘上的文件_为什么用pr导入视频显示文件导入失败?