zoukankan      html  css  js  c++  java
  • Android-沉浸式状态栏的实现

    1、取得状态栏的高度值

    /**
         * 获取状态栏的高度
         * @return
         */
        protected int getStatusBarHeight(){
    
            try {
                //通过反射获取到类
                Class<?> aClass = Class.forName("com.android.internal.R$dimen");
                //创建对象
                Object o = aClass.newInstance();
                //拿取属性
                Field status_bar_height = aClass.getField("status_bar_height");
                //获取值
                Object o1 = status_bar_height.get(o);
                int height = Integer.parseInt(o1.toString());
                //
                return getResources().getDimensionPixelSize(height);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return 0 ;
        }

    2、设置沉浸式状态栏(状态栏设置透明后,将顶层布局高度动态增加状态栏的高度)

     /**
         * 系统版本4.4或以上才可以设置沉浸式状态栏
         *
         * 设置沉浸式状态栏
         */
        private void setStatus(){
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
                //设置状态栏透明
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                //设置导航栏透明(如需要设置导航栏)
                getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
    
                bar_layout = (ViewGroup) findViewById(R.id.bar_layout);
                final int statusBarHeight = getStatusBarHeight();
                bar_layout.post(new Runnable() {
                    @Override
                    public void run() {
                        int height = bar_layout.getHeight();
                        ViewGroup.LayoutParams layoutParams = bar_layout.getLayoutParams();
    
                        layoutParams.height = statusBarHeight + height ;
                        bar_layout.setLayoutParams(layoutParams);
                    }
                });
            }
        }
  • 相关阅读:
    字符串拼接练习
    java数字字符的全半角转化
    mysql 的group by 满足的规则要求:
    从指定字符串获取n个随机数
    jQuery去除空格的$.trim()
    mysql里的位运算小结
    sql的case 用法
    泛型之元组示例
    jQuery里的replaceAll和replaceWith
    根据索引条件查询结果与原表关联的查询
  • 原文地址:https://www.cnblogs.com/happy-warmth/p/10497148.html
Copyright © 2011-2022 走看看