Android沉浸式状态栏简单实现

最简单的实现类似IOS的沉浸式状态栏效果的方法就是使用开源库SystemBarTint
第一步:当然是添加gradle依赖或者把这个库拷到自己项目中,其实就是一个类

compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'

第二步:在项目的每个Activity界面的布局文件的根目录中添加以下两行代码:

              android:clipToPadding="true"
              android:fitsSystemWindows="true"

第三步:写一个工具类,如下:

import android.app.Activity;
import android.os.Build;
import android.view.Window;
import android.view.WindowManager;

/**
 * Created by diyangxia on 2015/10/11.
 */
public class CommonTools {

    /**
     *  为界面设置沉浸式状态栏效果
     *  activity 当前Activity
     *  res 颜色id或者图片资源id
     */
    public static void initSystemBar(Activity activity,int res) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            Window win = activity.getWindow();
            WindowManager.LayoutParams winParams = win.getAttributes();
            final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
            winParams.flags |= bits;
            win.setAttributes(winParams);
        }
        SystemBarTintManager tintManager = new SystemBarTintManager(activity);
        tintManager.setStatusBarTintEnabled(true);
        tintManager.setStatusBarTintResource(res);
    }
}

第四步:在Activity中调用方法,如果设置的是图片,其实一般很少设置图片,不过像QQ那样侧滑出来的背景全屏效果还是不错的,用这里的方法貌似实现不了;如果设置的是颜色,建议和每个界面顶部标题栏的背景色一致:

CommonTools.initSystemBar(MainActivity.this,android.R.color.holo_red_dark);

这里写图片描述

备注:这种情况只适合那种统一主题以及背景色的应用,要是像用FragmentTabhost实现的这种tab布局菜单的话,还是放弃使用吧,因为我简单尝试了一下,发现根本无法实现不同tab状态栏不同的功能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值