Android实现沉浸式通知栏通知栏背景颜色跟随app导航栏背景颜色而改变

 更新时间:2016年02月05日 11:31:11   作者:秋叶为何落  
这篇文章主要介绍了Android实现沉浸式通知栏通知栏背景颜色跟随app导航栏背景颜色而改变的相关资料,需要的朋友可以参考下

最近好多app都已经满足了沉浸式通知栏, 所谓沉浸式通知栏:就是把用来导航的各种界面操作空间隐藏在以程序内容为主的情景中,通过相对“隐形”的界面来达到把用户可视范围最大化地用到内容本身上。

而最新安卓4.4系统的通知栏沉浸模式就是在软件打开的时候通知栏和软件顶部颜色融为一体,这样不仅可以使软件和系统本身更加融为一体。 就是手机的通知栏的颜色不再是白色、黑色简单的两种了,本人用的小米4手机,米4手机中的自带软件都支持沉浸式通知栏, 举个例子:大家可以看一下自己的qq,它的标题的背景颜色是蓝色的,那么通知栏也会变成蓝色。之前可能不行,也是最近支持了。

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

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

首先下载SystemBarTint,将里面的SystemBarTintManager.java拷贝出来放到自己的项目中, 在actitvity的onCreate()方法中判断并设置通知栏颜色(颜色需要根据软件的titlebar的背景自己定义)

代码一:

代码如下:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
setTranslucentStatus(true); 
} 
SystemBarTintManager tintManager = new SystemBarTintManager(this); 
tintManager.setStatusBarTintEnabled(true); 
tintManager.setStatusBarTintResource(R.color.statusbar_bg);//通知栏所需颜色 

下面是设置通知栏的状态

@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); 
}

这样就可以完美实现沉浸式通知栏的。注意系统一定是在4.4以上。小伙伴们赶快来试一下吧。

代码二:

通知栏(notification)背景颜色跟随app导航栏(top title)背景颜色变化而变化。
这也叫沉浸式状态栏,这是Google在android 4.4以上的系统提出的。
样式如图所示:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 
}

然后在xml布局文件中加入:

android:clipToPadding="false" 
android:fitsSystemWindows="true" 

相关文章

  • Android背景图下拉回弹效果实例

    Android背景图下拉回弹效果实例

    大家好,本篇文章主要讲的是Android背景图下拉回弹效果实例,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Android之Intent附加数据的两种实现方法

    Android之Intent附加数据的两种实现方法

    这篇文章主要介绍了Android之Intent附加数据的两种实现方法,以实例形式较为详细的分析了添加数据到Intent的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • Android仿腾讯视频实现悬浮窗效果

    Android仿腾讯视频实现悬浮窗效果

    对view比较熟悉的同学们应该发现了,其实我们的悬浮窗就是一个view,我们只需要把view添加到windowManager上就可以了。那么,下面通过本文给大家分享Android仿腾讯视频实现悬浮窗效果,一起看看吧
    2021-06-06
  • Android仿荷包APP启动动画

    Android仿荷包APP启动动画

    这篇文章主要为大家详细介绍了Android仿荷包APP启动动画的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 浅谈Android为RecyclerView增加监听以及数据混乱的小坑

    浅谈Android为RecyclerView增加监听以及数据混乱的小坑

    下面小编就为大家带来一篇浅谈Android为RecyclerView增加监听以及数据混乱的小坑。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Android实现控件的缩放移动功能

    Android实现控件的缩放移动功能

    这篇文章主要介绍了android控件的缩放,移动功能,本文图文并茂给大家介绍的非常详细,需要的朋友可以参考下
    2018-01-01
  • Android性能调优利器StrictMode应用分析

    Android性能调优利器StrictMode应用分析

    StrictMode意思为严格模式,是用来检测程序中违例情况的开发者工具。最常用的场景就是检测主线程中本地磁盘和网络读写等耗时的操作。这篇文章给大家介绍Android性能调优利器StrictMode应用分析,感兴趣的朋友一起看看吧
    2018-01-01
  • Android计时与倒计时实现限时抢购的5种方法

    Android计时与倒计时实现限时抢购的5种方法

    这篇文章主要为大家详细介绍了Android计时与倒计时实现限时抢购的5种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Android自定义View实现九宫格图形解锁(Kotlin版)

    Android自定义View实现九宫格图形解锁(Kotlin版)

    这篇文章主要为大家详细介绍了Android自定义View实现九宫格图形解锁,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Android数据类型之间相互转换系统介绍

    Android数据类型之间相互转换系统介绍

    一些初学Android的朋友可能会遇到JAVA的数据类型之间转换的苦恼;本文将为有这类需求的朋友解决此类问题
    2012-11-11

最新评论