首页 > 学院 > 开发设计 > 正文

StatusBarUtil 状态栏工具类(实现沉浸式状态栏/变色状态栏)

2019-11-09 16:06:39
字体:
来源:转载
供稿:网友

1.声明

最近app为了跟ios一致,要做沉浸式状态栏,所以听说了这个库,为了以后再用,所以转载。这位大佬厉害。大佬的地址: github 博文原地址 借个楼,根据他的代码,我写了个类似轮播图片的沉浸式状态栏,地址

2.博文

这是一个为Android App 设置状态栏的工具类, 可以在4.4及其以上系统中实现 沉浸式状态栏/状态栏变色,支持设置状态栏透明度,满足你司设计师的各种要求(雾)。

在此之前我写过一篇Android App 沉浸式状态栏解决方案,后来我司设计师说默认的透明度太深了,让我改浅一点,然后在想了一些办法之后给解决了。本着不重复造轮子的原则,索性整理成一个工具类,方便需要的开发者。

设置状态栏颜色

StatusBarUtil.setColor(Activity activity, int color)

设置状态栏半透明

StatusBarUtil.setTranslucent(Activity activity, int statusBarAlpha) ​ ​ 这里写图片描述

设置状态栏全透明

StatusBarUtil.setTransparent(Activity activity) 这里写图片描述

为包含 DrawerLayout 的界面设置状态栏颜色(也可以设置半透明和全透明) StatusBarUtil.setColorForDrawerLayout(Activity activity, DrawerLayout drawerLayout, int color) 这里写图片描述

为使用 ImageView 作为头部的界面设置状态栏透明 StatusBarUtil.setTranslucentForImageView(Activity activity, int statusBarAlpha, View needOffsetView) 这里写图片描述

在 Fragment 中使用 这里写图片描述

为滑动返回界面设置状态栏颜色

推荐配合 bingoogolapple/BGASwipeBackLayout-Android: Android Activity 滑动返回 这个库一起使用。 StatusBarUtil.setColorForSwipeBack(Activity activity, @ColorInt int color, int statusBarAlpha) 这里写图片描述

通过传入 statusBarAlpha 参数,可以改变状态栏的透明度值,默认值是112。

使用 在 build.gradle 文件中添加依赖, StatusBarUtil 已经发布在 JCenter: compile 'com.jaeger.statusbaruitl:library:1.3.5' 在 setContentView() 之后调用你需要的方法,例如:

setContentView(R.layout.main_activity); ... StatusBarUtil.setColor(MainActivity.this, mColor); 如果你在一个包含 DrawerLayout 的界面中使用, 你需要在布局文件中为 DrawerLayout 添加 android:fitsSystemWindows=”true” 属性:


上一篇:理解ThreadLocal

下一篇:ActivityOptionsCompat

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表