有很多应用有透明式状态栏、导航栏,表现形式是在不同页面里,状态栏可以与最上面的背景图片或者颜色保持一致。典型的案例就是手Q:(如图所示)

很明显,在手Q中主要的几个页面的标题栏(ActionBar位置),都是湖蓝色,而状态栏也是湖蓝色。QQ空间和好友资料的最上面的控件的自定义皮肤而状态栏是以透明背景叠加在其上。(眼尖的博友已经发现了图片都是iPhone的,Android手Q界面差不多的,自行脑补!!!)

一、显示效果

二话不说,先看一下透明状态栏、导航栏的效果:(触摸向上滑动,显示出透明的状态栏导航栏,一段时间后透明的状态栏导航栏自动隐藏)

二、实现功能

1.步骤:

1) 创建一个工程,主布局就先做一个ImageView,自己找个好看的图片做src。

2) 在Activity重写的onCreate方法中获得窗口视图对象(DecorView)

3) 设置DecorView的SystemUiVisibility

4) 设置导航条、状态栏的颜色–>透明

5) 获取当前Activity的ActionBar并隐藏

2.具体代码和注释:

获取DecorView对象

@Override

protected void onCreate(Bundle savedInstanceState) {

...

View decorView = getWindow().getDecorView();

...

}

设置SystemUiVisibility

int option = View.SYSTEM_UI_FLAG_FULLSCREEN // 全屏标记

| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN // 布局全屏标记,避免退出全屏模式时内容被覆盖

| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // 隐藏导航栏标记

| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // 布局隐藏导航栏标记,同理

| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY // 粘性沉浸体验

| View.SYSTEM_UI_FLAG_LAYOUT_STABLE; // 确保上述标记稳定

// 此方法用来设置系统UI的可见性,系统UI包括状态栏、ActionBar、导航栏

devorView.setSystemUiVisibility(option);

设置状态栏、导航栏的颜色:

getWindow().setStatusBarColor(Color.TRANSPARENT);// Color.TRANSPARENT = 0 表示#00000000即透明颜色

getWindow().setNavigationBarColor(Color.TRANSPARENT);

获取本页面的ActionBar并隐藏起来

ActionBar actionBar = getSupportActionBar(); // 注意:此处用的Activity继承的是AppCompatActivity(它继承的是FragmentActivity)

// 所以调用的是getSupport...方法,如果继承Activity则直接调用get...方法

assert actionBar != null; // 这一句可以不理会,反正我是Ctrl + F1提示出来的,意思其实是判断如果actionBar不为空则向下执行。

actionBar.hide();

注意:最后一点注意事项是:只支持Android API 21以上的手机

三、来点花式透明的效果:

这个花式效果其实还是很实用的。因为通常要隐藏状态栏和导航栏的情况是看视频或者打游戏。一般都是横屏,因此做一个横屏的效果。关于横竖屏切换以及屏幕方向锁定可以参看我的下一篇博客。

android 电话 状态栏,Android透明式状态栏、导航栏实现相关推荐

  1. android 导航栏半透明,Android 沉浸式/透明式状态栏、导航栏

    前言 Android 从4.4开始引进透明状态栏和导航栏的概念,并且在5.0进行了改进,将透明变成了半透明的效果.虽然此特性最早出现在ios,但不否认效果还是很赞的. 至于4.4以下的手机,就不要考虑 ...

  2. 直播带货app源码,android 全透明式状态栏

    直播带货app源码,android 全透明式状态栏实现的相关代码 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){//半透明头部状 ...

  3. android判断多个按钮,Android开发之判断有无虚拟按键(导航栏)的实例

    判断有无虚拟按键(导航栏) 现在很大一部分手机没有虚拟按键,一部分有.我们在做适配的时候可能会用到这方面的知识. 例如:屏幕填充整个屏幕的时候,没办法只能连导航栏一起填充了,但是这个不是我们想要的,我 ...

  4. 转载:Android (争取做到)最全的底部导航栏实现方法

    原文出处 标题:Android (争取做到)最全的底部导航栏实现方法 作者:野狼谷 原文链接:Android (争取做到)最全的底部导航栏实现方法 - 野狼谷 - 博客园 前言 本文(争取做到)And ...

  5. Android --- 详细介绍透明式状态栏和沉浸式状态栏

    今天来写一个类似于qq空间的那种沉浸式效果.先来看看qq空间的这种效果 我们看到,头部局上拉的时候有个头布局的透明是从0变化到1,当你下拉的时候,头部局透明度又从1变化到0了.始终效果看起来还是不错的 ...

  6. Android获取顶部状态栏statusBar高度、底部导航栏navigationBar高度

    手机顶部显示时间.电量等信息的叫状态栏,即statusBar 有些手机比如华为在底部会有返回.回到主页面等虚拟功能键,这是导航栏,即navigationBar 下面列出一些项目中常用的功能代码? 嘻嘻 ...

  7. 安卓Android修改车机版系统的导航栏和状态栏高度

    1.修改路径 状态栏路径:frameworks/base/core/res/res/values/dimens.xml <!-- Height of the status bar in port ...

  8. Android开发:隐藏和显示底部导航栏

    描述:视频播放器实现全屏和小屏互相切换时,显示和隐藏底部导航栏的方法 该例子设置的Activity是去除状态栏和标题栏,全屏显示布局和电量等信息.Manifest文件 theme如下: <act ...

  9. android开发(49) android 使用 CollapsingToolbarLayout ,可折叠的顶部导航栏

    概述 在很app上都见过 可折叠的顶部导航栏效果.google support v7  提供了 CollapsingToolbarLayout 可以实现这个效果.效果图如下:    实现步骤 1. 写 ...

最新文章

  1. 一个简单的内核模块实现和使用
  2. legend2---开发常用语句
  3. 使用 C# 开发智能手机软件:推箱子(二十三)
  4. 今日arXiv精选 | 9篇ICCV 2021最新论文
  5. (常用API)正则表达式邮箱地址验证
  6. linux怎么衡量负载大小,如何查看linux机器的平均负载
  7. 国美处罚“摸鱼员工”,错在什么地方
  8. 【Machine Learning 一】监督学习与无监督学习
  9. java char的意思,java – @(#)字符的含义
  10. 报错:fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle解决
  11. a59s刷机包卡刷 oppo_OPPO A59S刷机包下载|OPPO A59S刷机包官方下载-太平洋下载中心...
  12. 阿里巴巴java开发手册 《Java开发手册》v1.5.0 华山版.pdf
  13. Windows系统设置共享文件夹及访问共享文件夹
  14. 利用维基百科挖掘概念之间的先决条件关系(初探)
  15. C++程序员的职业生涯规划
  16. FPGA--VGA显示驱动实验
  17. 第3章 Hive数据类型
  18. 计蒜客-天上的星星(矩阵容斥)
  19. 包邮赠书!李航《统计学习方法》详解
  20. J2EE基础教程(4):struts框架(视频笔记)

热门文章

  1. C++ Primer 5th笔记(chap 13 拷贝控制)析构函数
  2. 数学建模——层次分析法Python代码
  3. HTTP中post方法提交不同格式的数据
  4. 密码技术--非对称加密算法及Go语言应用
  5. 2021-11-28
  6. empire-web可视化
  7. 最高标号预留与推进算法 --- 就是要比 Dinic 快!
  8. CTF题目中遇到的PHP考点总结(一)
  9. Windows进程与线程学习笔记(四)—— 等待链表调度链表
  10. 查看进程命令+关闭进程