如何获取底部虚拟按键栏的高度

来源:互联网 发布:mac os sierra壁纸 编辑:程序博客网 时间:2024/06/13 04:49

如何获取底部虚拟按键栏的高度

API 17之后使用,获取的像素宽高包含虚拟键所占空间,在API 17之前通过反射获取
context.getWindowManager().getDefaultDisplay().getRealMetrics(metric); 获取的像素宽高不包含虚拟键所占空间

 DisplayMetrics metric = new DisplayMetrics();//context.getWindowManager().getDefaultDisplay().getMetrics(metric);  int width = metric.widthPixels;  // 宽度(像素)  int height = metric.heightPixels;  // 高度(像素)  float density = metric.density;  // dp缩放因子  int densityDpi = metric.densityDpi;  // 广义密度  float xdpi = metric.xdpi;//x轴方向的真实密度  float ydpi = metric.ydpi;//y轴方向的真实密度 
//具体的方法: private int getSoftButtonsBarHeight() {            DisplayMetrics metrics = new DisplayMetrics();            //这个方法获取可能不是真实屏幕的高度            mActivity.getWindowManager().getDefaultDisplay().getMetrics(metrics);            int usableHeight = metrics.heightPixels;            //获取当前屏幕的真实高度            mActivity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics);            int realHeight = metrics.heightPixels;            if (realHeight > usableHeight) {                return realHeight - usableHeight;            } else {                return 0;            }        }
1 0
原创粉丝点击