public class BarUtils
extends java.lang.Object
author: Blankj blog : http://blankj.com time : 2016/9/23 desc : 栏相关工具类
Modifier and Type | Class and Description |
---|---|
static class |
BarUtils.StatusBarView |
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_STATUS_BAR_ALPHA |
Modifier and Type | Method and Description |
---|---|
static int |
getActionBarHeight(Activity activity)
获取ActionBar高度
|
static int |
getStatusBarHeight(Context context)
获取状态栏高度
|
static void |
hideNotificationBar(Context context)
隐藏通知栏
|
static void |
hideStatusBar(Activity activity)
隐藏状态栏
|
static boolean |
isStatusBarExists(Activity activity)
判断状态栏是否存在
|
static void |
setColor(Activity activity,
int color)
设置状态栏颜色
|
static void |
setColor(Activity activity,
int color,
int statusBarAlpha)
设置状态栏颜色
|
static void |
setColorDiff(Activity activity,
int color)
Deprecated.
|
static void |
setColorForDrawerLayout(Activity activity,
android.support.v4.widget.DrawerLayout drawerLayout,
int color)
为DrawerLayout 布局设置状态栏变色
|
static void |
setColorForDrawerLayout(Activity activity,
android.support.v4.widget.DrawerLayout drawerLayout,
int color,
int statusBarAlpha)
为DrawerLayout 布局设置状态栏变色
|
static void |
setColorForDrawerLayoutDiff(Activity activity,
android.support.v4.widget.DrawerLayout drawerLayout,
int color)
Deprecated.
|
static void |
setColorForSwipeBack(Activity activity,
int color)
为滑动返回界面设置状态栏颜色
|
static void |
setColorForSwipeBack(Activity activity,
int color,
int statusBarAlpha)
为滑动返回界面设置状态栏颜色
|
static void |
setColorNoTranslucent(Activity activity,
int color)
设置状态栏纯色 不加半透明效果
|
static void |
setColorNoTranslucentForDrawerLayout(Activity activity,
android.support.v4.widget.DrawerLayout drawerLayout,
int color)
为DrawerLayout 布局设置状态栏颜色,纯色
|
static void |
setTranslucent(Activity activity)
使状态栏半透明
|
static void |
setTranslucent(Activity activity,
int statusBarAlpha)
使状态栏半透明
|
static void |
setTranslucentDiff(Activity activity)
Deprecated.
|
static void |
setTranslucentForCoordinatorLayout(Activity activity,
int statusBarAlpha)
针对根布局是 CoordinatorLayout, 使状态栏半透明
|
static void |
setTranslucentForDrawerLayout(Activity activity,
android.support.v4.widget.DrawerLayout drawerLayout)
为 DrawerLayout 布局设置状态栏透明
|
static void |
setTranslucentForDrawerLayout(Activity activity,
android.support.v4.widget.DrawerLayout drawerLayout,
int statusBarAlpha)
为 DrawerLayout 布局设置状态栏透明
|
static void |
setTranslucentForDrawerLayoutDiff(Activity activity,
android.support.v4.widget.DrawerLayout drawerLayout)
Deprecated.
|
static void |
setTranslucentForImageView(Activity activity,
int statusBarAlpha,
View needOffsetView)
为头部是 ImageView 的界面设置状态栏透明
|
static void |
setTranslucentForImageView(Activity activity,
View needOffsetView)
为头部是 ImageView 的界面设置状态栏透明(使用默认透明度)
|
static void |
setTranslucentForImageViewInFragment(Activity activity,
int statusBarAlpha,
View needOffsetView)
为 fragment 头部是 ImageView 的设置状态栏透明
|
static void |
setTranslucentForImageViewInFragment(Activity activity,
View needOffsetView)
为 fragment 头部是 ImageView 的设置状态栏透明
|
static void |
setTransparent(Activity activity)
设置状态栏全透明
|
static void |
setTransparentForDrawerLayout(Activity activity,
android.support.v4.widget.DrawerLayout drawerLayout)
为 DrawerLayout 布局设置状态栏透明
|
static void |
setTransparentForImageView(Activity activity,
View needOffsetView)
为头部是 ImageView 的界面设置状态栏全透明
|
static void |
setTransparentForImageViewInFragment(Activity activity,
View needOffsetView)
为 fragment 头部是 ImageView 的设置状态栏透明
|
static void |
setTransparentStatusBar(Activity activity)
设置透明状态栏(api大于19方可使用)
|
static void |
showNotificationBar(Context context,
boolean isSettingPanel)
显示通知栏
|
public static final int DEFAULT_STATUS_BAR_ALPHA
public static void setColor(Activity activity, int color)
activity
- 需要设置的 activitycolor
- 状态栏颜色值public static void setColor(Activity activity, int color, int statusBarAlpha)
activity
- 需要设置的activitycolor
- 状态栏颜色值statusBarAlpha
- 状态栏透明度public static void setColorForSwipeBack(Activity activity, int color)
activity
- 需要设置的activitycolor
- 状态栏颜色值public static void setColorForSwipeBack(Activity activity, int color, int statusBarAlpha)
activity
- 需要设置的activitycolor
- 状态栏颜色值statusBarAlpha
- 状态栏透明度public static void setColorNoTranslucent(Activity activity, int color)
activity
- 需要设置的 activitycolor
- 状态栏颜色值@Deprecated public static void setColorDiff(Activity activity, int color)
activity
- 需要设置的 activitycolor
- 状态栏颜色值public static void setTranslucent(Activity activity)
适用于图片作为背景的界面,此时需要图片填充到状态栏
activity
- 需要设置的activitypublic static void setTranslucent(Activity activity, int statusBarAlpha)
适用于图片作为背景的界面,此时需要图片填充到状态栏
activity
- 需要设置的activitystatusBarAlpha
- 状态栏透明度public static void setTranslucentForCoordinatorLayout(Activity activity, int statusBarAlpha)
适用于图片作为背景的界面,此时需要图片填充到状态栏
activity
- 需要设置的activitystatusBarAlpha
- 状态栏透明度public static void setTransparent(Activity activity)
activity
- 需要设置的activity@Deprecated public static void setTranslucentDiff(Activity activity)
适用于图片作为背景的界面,此时需要图片填充到状态栏
activity
- 需要设置的activitypublic static void setColorForDrawerLayout(Activity activity, android.support.v4.widget.DrawerLayout drawerLayout, int color)
activity
- 需要设置的activitydrawerLayout
- DrawerLayoutcolor
- 状态栏颜色值public static void setColorNoTranslucentForDrawerLayout(Activity activity, android.support.v4.widget.DrawerLayout drawerLayout, int color)
activity
- 需要设置的activitydrawerLayout
- DrawerLayoutcolor
- 状态栏颜色值public static void setColorForDrawerLayout(Activity activity, android.support.v4.widget.DrawerLayout drawerLayout, int color, int statusBarAlpha)
activity
- 需要设置的activitydrawerLayout
- DrawerLayoutcolor
- 状态栏颜色值statusBarAlpha
- 状态栏透明度@Deprecated public static void setColorForDrawerLayoutDiff(Activity activity, android.support.v4.widget.DrawerLayout drawerLayout, int color)
activity
- 需要设置的activitydrawerLayout
- DrawerLayoutcolor
- 状态栏颜色值public static void setTranslucentForDrawerLayout(Activity activity, android.support.v4.widget.DrawerLayout drawerLayout)
activity
- 需要设置的activitydrawerLayout
- DrawerLayoutpublic static void setTranslucentForDrawerLayout(Activity activity, android.support.v4.widget.DrawerLayout drawerLayout, int statusBarAlpha)
activity
- 需要设置的activitydrawerLayout
- DrawerLayoutstatusBarAlpha
- 透明度public static void setTransparentForDrawerLayout(Activity activity, android.support.v4.widget.DrawerLayout drawerLayout)
activity
- 需要设置的activitydrawerLayout
- DrawerLayout@Deprecated public static void setTranslucentForDrawerLayoutDiff(Activity activity, android.support.v4.widget.DrawerLayout drawerLayout)
activity
- 需要设置的activitydrawerLayout
- DrawerLayoutpublic static void setTransparentForImageView(Activity activity, View needOffsetView)
activity
- 需要设置的activityneedOffsetView
- 需要向下偏移的 Viewpublic static void setTranslucentForImageView(Activity activity, View needOffsetView)
activity
- 需要设置的activityneedOffsetView
- 需要向下偏移的 Viewpublic static void setTranslucentForImageView(Activity activity, int statusBarAlpha, View needOffsetView)
activity
- 需要设置的activitystatusBarAlpha
- 状态栏透明度needOffsetView
- 需要向下偏移的 Viewpublic static void setTranslucentForImageViewInFragment(Activity activity, View needOffsetView)
activity
- fragment 对应的 activityneedOffsetView
- 需要向下偏移的 Viewpublic static void setTransparentForImageViewInFragment(Activity activity, View needOffsetView)
activity
- fragment 对应的 activityneedOffsetView
- 需要向下偏移的 Viewpublic static void setTranslucentForImageViewInFragment(Activity activity, int statusBarAlpha, View needOffsetView)
activity
- fragment 对应的 activitystatusBarAlpha
- 状态栏透明度needOffsetView
- 需要向下偏移的 Viewpublic static int getStatusBarHeight(Context context)
context
- contextpublic static void setTransparentStatusBar(Activity activity)
可在Activity的onCreat()中调用
需在顶部控件布局中加入以下属性让内容出现在状态栏之下
android:clipToPadding="true"
android:fitsSystemWindows="true"
activity
- activitypublic static void hideStatusBar(Activity activity)
也就是设置全屏,一定要在setContentView之前调用,否则报错
此方法Activity可以继承AppCompatActivity
启动的时候状态栏会显示一下再隐藏,比如QQ的欢迎界面
在配置文件中Activity加属性android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
如加了以上配置Activity不能继承AppCompatActivity,会报错
activity
- activitypublic static boolean isStatusBarExists(Activity activity)
activity
- activitytrue
: 存在false
: 不存在public static int getActionBarHeight(Activity activity)
activity
- activitypublic static void showNotificationBar(Context context, boolean isSettingPanel)
需添加权限 <uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
context
- 上下文isSettingPanel
- true
: 打开设置false
: 打开通知public static void hideNotificationBar(Context context)
需添加权限 <uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>
context
- 上下文