Android沉浸式状态栏完美实现

Android4.4以上才支持,也就是API 19以上, 下面直接上代码

参考了git上的一个项目:https://github.com/jiangqqlmj/FastDev4Android

核心代码就是这些,

/**
     * 设置沉浸式状态栏
     */
    protected void setImmergeState() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            //透明状态栏
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            //透明导航栏,有虚拟键的下面的需要注释掉,不然效果感人
            //getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);

            LinearLayout linear_bar = (LinearLayout) findViewById(R.id.linear_bar);
            linear_bar.setVisibility(View.VISIBLE);
            int statusHeight = getStatusBarHeight();
            LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) linear_bar.getLayoutParams();

            params.height = statusHeight;
            linear_bar.setLayoutParams(params);
        }
    }

    /**
     * 用于获取状态栏的高度。 使用Resource对象获取
     *
     * @return 返回状态栏高度的像素值。
     */
    public int getStatusBarHeight() {
        int result = 0;
        int resourceId = getResources().getIdentifier("status_bar_height", "dimen",
                "android");
        if (resourceId > 0) {
            result = getResources().getDimensionPixelSize(resourceId);
        }
        return result;
    }



下面的布局代码,放在你要设置的界面的最上面

  <!-- 用来填充状态栏==========-->
    <LinearLayout
        android:id="@+id/linear_bar"
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="#3289ff"
        android:orientation="vertical"
        android:visibility="gone"
        >
    </LinearLayout>


如果有问题的可以看项目用的工具是Android Studio,下面是项目下载地址:

http://download.csdn.net/detail/qq137464739/9385115

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值