是否有可能获得软导航布局的高度?

时间:2014-09-18 16:34:58

标签: android d-pad

是否可以获得软(虚拟)导航布局的高度?如果是的话,如何获得高度程序化的盟友? enter image description here

2 个答案:

答案 0 :(得分:1)

这应该有效:

Resources resources = context.getResources();
int resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
    return resources.getDimensionPixelSize(resourceId);
}
return 0;

答案 1 :(得分:0)

DisplayMetrics metrics = new DisplayMetrics();

获取没有软导航布局的屏幕指标

getActivity().getWindowManager().getDefaultDisplay()
                    .getMetrics(metrics);
int usableHeight = metrics.heightPixels;

获取具有软导航布局的屏幕指标

getActivity().getWindowManager().getDefaultDisplay()
                    .getRealMetrics(metrics);
int realHeight = metrics.heightPixels;

当您从realHeight中减去usefulHeight时,您将获得软导航布局的实际高度。

注意:getRealMetrics()方法仅在Api级别大于或等于17时才有效,否则无法工作。因此,在获取显示指标之前检查构建版本