失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > StatusBarUtil 状态栏工具类(实现沉浸式状态栏/变色状态栏)

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

时间:2023-06-27 15:20:54

相关推荐

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

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

本着不重复造轮子的原则,在网上找到了一个工具类,方便需要的开发者。

项目 GitHub 地址

Sample 下载

下载 StatusBarUtil-Demo

特性

设置状态栏颜色

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.statusbarutil:library:1.4.0'

setContentView()之后调用你需要的方法,例如:

setContentView(R.layout.main_activity);...StatusBarUtil.setColor(MainActivity.this, mColor);

如果你在一个包含DrawerLayout的界面中使用, 你需要在布局文件中为DrawerLayout添加android:fitsSystemWindows="true"属性:

<android.support.v4.widget.DrawerLayoutxmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"android:id="@+id/drawer_layout"android:layout_width="match_parent"android:layout_height="match_parent"android:fitsSystemWindows="true">...</android.support.v4.widget.DrawerLayout>

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

建议配合bingoogolapple/BGASwipeBackLayout-Android: Android Activity 滑动返回库一起使用。

StatusBarUtil.setColorForSwipeBack(Activity activity, @ColorInt int color, int statusBarAlpha)

当你设置了statusBarAlpha值时,该值需要在 0 ~ 255 之间

在 Fragment 中的使用可以参照UseInFragmentActivity.java来实现

如果觉得《StatusBarUtil 状态栏工具类(实现沉浸式状态栏/变色状态栏)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。