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);
                    }
                });
            }
        }
  • 相关阅读:
    关于SuperSocket启动失败
    ffmpeg 常用命令
    Url中有中文参数需要编码解码
    单例模式
    c# 文件夹重命名
    一个既有winform又有webapi 的例子
    数据库查询字段的结构和长度
    Jquery 展开收起
    ajax即时修改
    EFCore 迁移
  • 原文地址:https://www.cnblogs.com/happy-warmth/p/10497148.html
Copyright © 2011-2022 走看看