沉浸式状态栏实现-SystemBarTint

原创 2015年11月18日 12:12:45

1 SystemBarTint库

git地址:https://github.com/jgilfelt/SystemBarTint

2 简介

在Android KitKat的translucent模式下,可以应用背景着色到Android的系统UI中。Android4.4(API19)介绍了透明的系统UI样式(状态status栏和导航条navigation bar),这些样式对于基于activity的墙纸应用是非常有用的,比如主屏的launcher.
该库提供了使用颜色值或drawable为系统bar创建背景着色的简单方式。

3使用

首先使activity的透明可用,有两种方式:
1) 使用*.TranslucentDecor或其子类主题
2) 通过设置android:windowTranslucentNavigation 或android:windowTranslucentStatus主题属性为true。
3) 在activity代码中添加标识FLAG_TRANSLUCENT_NAVIGATION 或FLAG_TRANSLUCENT_STATUS:

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

在api 19以前的版本半透明translucency是不可用的,系统UI会正常出现。当使用全屏或沉浸式窗口模式时,着色tinting应该不可用。在API 10 及以上都可以安全的使用该库。
使tint可用

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // create our manager instance after the content view is set
    SystemBarTintManager tintManager = new SystemBarTintManager(this);
    // enable status bar tint
    tintManager.setStatusBarTintEnabled(true);
    // enable navigation bar tint
    tintManager.setNavigationBarTintEnabled(true);
}

提供定制的着色颜色值或drawable

// set a custom tint color for all system bars
tintManager.setTintColor(Color.parseColor("#99000FF"));
// set a custom navigation bar resource
tintManager.setNavigationBarTintResource(R.drawable.my_tint);
// set a custom status bar drawable
tintManager.setStatusBarTintDrawable(MyDrawable);

系统条配置SystemBarConfig
开发者不需要关心系统UI的大小和位置。android:fitsSystemWindows=”true”和android:clipToPadding=”false”结合使用可以实现内容全屏模式下在系统UI内有padding填充的最佳布局。然而,某些元素比如GoogleMap强制要求系统条的内部值,以提供最佳的布局效果。
使用由SystemBarTintManager提供的SystemBarConfig类对象,可以访问这些内部值。

4 部署

下载JAR
https://github.com/jgilfelt/SystemBarTint
Gradle:
compile ‘com.readystatesoftware.systembartint:systembartint:1.0.4’

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android沉浸式状态栏SystemBarTint的使用方法

什么是沉浸式状态栏Android从4.4开始支持这种显示效果,直接看对比图:从上图可以看到左边淘宝APP最顶部的状态栏背景是黑色的,而右边的360手机助手那个位置不是黑色,就是用了沉浸式状态栏这种效果...
  • hwe_xc
  • hwe_xc
  • 2016年01月21日 10:55
  • 14078

Android 使用SystemBarTint设置状态栏颜色

Android使用SystemBarTint设置状态栏颜色
  • zuiwuyuan
  • zuiwuyuan
  • 2015年11月29日 22:44
  • 6319

SystemBarTint的使用(设置半透明状态栏)

1.在系统是4.4以上的系统,包括4.4开始可以设置半透明的状态栏了 代码: if(VERSION.SDK_INT >= VERSION_CODES.KITKAT) { ...
  • u011228356
  • u011228356
  • 2015年07月28日 16:58
  • 13193

SystemBarTint实现沉浸式状态栏

使用SystembarTint库实现沉浸式效果
  • u012304076
  • u012304076
  • 2016年03月12日 18:22
  • 539

systembartint.jar

  • 2015年12月02日 17:23
  • 8KB
  • 下载

Android沉浸式通知栏开源库SystemBarTint源码解析

前一段时间我写了一篇关于沉浸式的文章:Android实现沉浸式状态栏的那些坑 当时只是知道SystemBarTint的存在,并没有去了解它的实现效果和原理,因为搜Android沉浸式时好多都提到这个...
  • brian512
  • brian512
  • 2016年08月23日 15:56
  • 1658

Android 使用SystemBarTint设置状态栏颜色

Android使用SystemBarTint设置状态栏颜色
  • zuiwuyuan
  • zuiwuyuan
  • 2015年11月29日 22:44
  • 6319

Android System Bar Tint 沉浸式菜单栏使用教程

https://github.com/jgilfelt/SystemBarTint 1.状态栏支持图片显示。 2.状态栏支持颜色变换。 安装: 下载JAR文件如何载入你的工程...
  • Qyuewei
  • Qyuewei
  • 2015年12月22日 14:57
  • 979

Android沉浸式通知栏开源库SystemBarTint源码解析

前一段时间我写了一篇关于沉浸式的文章:Android实现沉浸式状态栏的那些坑 当时只是知道SystemBarTint的存在,并没有去了解它的实现效果和原理,因为搜Android沉浸式时好多都提到这个...
  • brian512
  • brian512
  • 2016年08月23日 15:56
  • 1658

Android沉浸式状态栏SystemBarTint的使用方法

什么是沉浸式状态栏Android从4.4开始支持这种显示效果,直接看对比图:从上图可以看到左边淘宝APP最顶部的状态栏背景是黑色的,而右边的360手机助手那个位置不是黑色,就是用了沉浸式状态栏这种效果...
  • hwe_xc
  • hwe_xc
  • 2016年01月21日 10:55
  • 14078
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:沉浸式状态栏实现-SystemBarTint
举报原因:
原因补充:

(最多只允许输入30个字)