开发者社区> 进阶的玄武> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Android实现沉浸式通知栏,通知栏可以根据app的颜色可改变啦

简介: 版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/46547273 最近好多app都已经满足了沉浸式通知栏,所谓沉浸式通知栏:就是把用来导航的各种界面操作空间隐藏在以程序内容为主的情景中,通过相对“隐形”的界面来达到把用户可视范围最大化地用到内容本身上。
+关注继续查看
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/46547273
最近好多app都已经满足了沉浸式通知栏,所谓沉浸式通知栏:就是把用来导航的各种界面操作空间隐藏在以程序内容为主的情景中,通过相对“隐形”的界面来达到把用户可视范围最大化地用到内容本身上。
而最新安卓4.4系统的通知栏沉浸模式就是在软件打开的时候通知栏和软件顶部颜色融为一体,这样不仅可以使软件和系统本身更加融为一体。就是手机的通知栏的颜色不再是白色、黑色简单的两种了,本人用的小米4手机,米4手机中的自带软件都支持沉浸式通知栏,
举个例子:大家可以看一下自己的qq,它的标题的背景颜色是蓝色的,那么通知栏也会变成蓝色。之前可能不行,也是最近支持了。
网上有支持沉浸通知栏的软件,大家可以下载下来让自己的手机上所有的软件都支持,但是效果好像不太好。下面是教程:
http://www.jb51.net/shouji/289496.html

不知道miui6什么时候能统一支持一下。下面给大家说一下怎么让自己的app支持沉浸式通知栏:


github上已经有大牛研究出来了,说一下怎么实现的:




首先下载SystemBarTint,将里面的SystemBarTintManager.java拷贝出来放到自己的项目中,
在actitvity的onCreate()方法中判断并设置通知栏颜色(颜色需要根据软件的titlebar的背景自己定义)
代码如下:
  1. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {  
  2.             setTranslucentStatus(true);  
  3.         }  
  4.   
  5.         SystemBarTintManager tintManager = new SystemBarTintManager(this);  
  6.         tintManager.setStatusBarTintEnabled(true);  
  7.         tintManager.setStatusBarTintResource(R.color.statusbar_bg);//通知栏所需颜色  
复制代码
下面是设置通知栏的状态
  1. @TargetApi(19)   
  2.     private void setTranslucentStatus(boolean on) {  
  3.         Window win = getWindow();  
  4.         WindowManager.LayoutParams winParams = win.getAttributes();  
  5.         final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;  
  6.         if (on) {  
  7.             winParams.flags |= bits;  
  8.         } else {  
  9.             winParams.flags &= ~bits;  
  10.         }  
  11.         win.setAttributes(winParams);  
  12.     }
复制代码
这样就可以完美实现沉浸式通知栏的。注意系统一定是在4.4以上。小伙伴们赶快来试一下吧。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android之修改部分字体颜色
#01# 方法一: TextView textView = (TextView) view.findViewById(R.id.text); SpannableString ss = new SpannableString("北京欢迎你,荣昌挺好的"); ss.
590 0
Android开发之浮动Activity
场景 在使用App时,曾经看到这样一个场景,如下图所示,点击顶部菜单按钮,有一个类似的对话框的列表显示出来,让用户选择其中的一个快递选项,然后选中的快递信息就会填充到底部的Activity中。
674 0
Android开发之入口Activity
原文:Android开发之入口Activity Android开发之入口Activity Adnroid App是如何确定入口Activity的? 难道就因为class的类名叫MainActivity,布局文件叫activity_main.xml? 如果这样认为,就大错特错了。
941 0
Android Activity调整改变成Dialog
做一个style配置到style.xml,直接作为该Activity的android:theme配置即可。 具体的style: true @android:color/transparent true true true @android:color/transparent 0.5 在上层Java代码增加一个: setTitle(null);取消系统自己设置的标题。
970 0
我的Android进阶之旅------>如何将Activity变为半透明的对话框?
              我的Android进阶之旅------>如何将Activity变为半透明的对话框?可以从两个方面来考虑:对话框和半透明。 在定义Activity时指定Theme.Dialog主题就可以将Activity设置为对话框风格。
1295 0
我的Android进阶之旅------>自己写个Activity来调节Android系统背光亮度Brightness
            今天终于算初步写好了一个调节系统背光亮度Brightness的代码,本来不看Android源代码以为可以直接调用某个Action来启动系统的那个调节Brightness的对话框,但是看了代码后发现系统调节Brightness的自定义组件BrightnessPreference继承了SeekBarDialogPreference,但是最终父类还是Preference,因此不能够单独启动,必须得将这个自定义的BrightnessPreference用某个Activity才能加载过来,毕竟最终还是一个组件。
970 0
【Android 应用开发】Activity生命周期 与 Activity 之间的通信
【Android 应用开发】Activity生命周期 与 Activity 之间的通信
28 0
+关注
进阶的玄武
将来的你一定会感激现在努力的自己!!! 关于我 嗨,我是黄海杰(@Hankkin),是一名Android开发工程师。现居北京,就职于58同城。 Github:https://github.com/Hankkin CSDN:http://blog.csdn.net/lyhhj
68
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载