android沉浸式状态栏,状态栏字体修改

本文介绍了如何在Android应用中实现沉浸式状态栏并修改状态栏字体颜色。提供了一个Utils工具类的使用方法,只需在Activity的onCreate方法中调用,并根据需求修改字体颜色。同时提到了在app的build.gradle中导入相关依赖。
摘要由CSDN通过智能技术生成

不用找了,你的需求,我这里都有,下面 给大家贴出效果图
在这里插入图片描述
在这里插入图片描述
给大家粘一个我的Utils


public class StatusBarUtils {
   
    private Activity mActivity;
    //状态栏颜色
    private int mColor = -1;
    //状态栏drawble
    private Drawable mDrawable;
    //是否是最外层布局是 DrawerLayout 的侧滑菜单
    private boolean mIsDrawerLayout;
    //是否包含 ActionBar
    private boolean mIsActionBar;
    //侧滑菜单页面的内容视图
    private int mContentResourseIdInDrawer;

    public StatusBarUtils(Activity activity) {
   
        mActivity = activity;
    }

    public static StatusBarUtils with(Activity activity) {
   
        return new StatusBarUtils(activity);
    }

    public int getColor() {
   
        return mColor;
    }

    public StatusBarUtils setColor(int color) {
   
        mColor = color;
        return this;
    }

    public Drawable getDrawable() {
   
        return mDrawable;
    }

    public StatusBarUtils setDrawable(Drawable drawable) {
   
        mDrawable = drawable;
        return this;
    }

    public boolean isDrawerLayout() {
   
        return mIsDrawerLayout;
    }

    public boolean isActionBar() {
   
        return mIsActionBar;
    }

    public StatusBarUtils setIsActionBar(boolean actionBar) {
   
        mIsActionBar = actionBar;
        return this;
    }

    /**
     * 是否是最外层布局为 DrawerLayout 的侧滑菜单
     *
     * @param drawerLayout 是否最外层布局为 DrawerLayout
     * @param contentId    内容视图的 id
     * @return
     */
    public StatusBarUtils setDrawerLayoutContentId(boolean drawerLayout, int contentId) {
   
        mIsDrawerLayout = drawerLayout;
        mContentResourseIdInDrawer = contentId;
        return this;
    }

    public void init() {
   
        fullScreen(mActivity);
        if (mColor != -1) {
   
            //设置了状态栏颜色
            addStatusViewWithColor(mActivity, mColor);
        }
        if (mDrawable != null) {
   
            //设置了状态栏 drawble,例如渐变色
            addStatusViewWithDrawble(mActivity, mDrawable);
        }
        if (isDrawerLayout()) {
   
            //未设置 fitsSystemWindows 且是侧滑菜单,需要设置 fitsSystemWindows 以解决 4.4 上侧滑菜单上方白条问题
            fitsSystemWindows(mActivity);
        }
        if (isActionBar()) {
   
            //要增加内容视图的 paddingTop,否则内容被 ActionBar 遮盖
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
   
                ViewGroup rootView = (ViewGroup) mActivity.getWindow().getDecorView().findViewById(android.R.id.content);
                rootView.setPadding(0, getStatusBarHeight(mActivity) + getActionBarHeight(mActivity), 0, 0);
            }
        }
    }

    /**
     * 去除 ActionBar 阴影
     */
    public StatusBarUtils clearActionBarShadow() {
   
        if (<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值