怎么计算底部导航栏的高度

天王盖地虎626 发布于 2016/10/11 14:22
阅读 434
收藏 0

android 中,计算各种高度,一般是按照下面的图来计算的,有些手机(比如华为手机)在屏幕底部有个导航栏(包括返回键和home键),

我想问下,这个底部导航栏该如何计算高度?

我们一般获取屏幕高度的方法会不会包括这个底部导航栏的高度?

  DisplayMetrics dm = new DisplayMetrics();  
  getWindowManager().getDefaultDisplay().getMetrics(dm);  
  Log.i("height_5", "屏幕高:" + dm.heightPixels);  

加载中
0
天王盖地虎626
天王盖地虎626
/**
     * 获取导航栏高度
     * @param context
     * @return
     */
    private int getDaoHangHeight(Context context) {
        int result = 0;
        int resourceId=0;
        int rid = context.getResources().getIdentifier("config_showNavigationBar", "bool", "android");
        if (rid!=0){
             resourceId = context.getResources().getIdentifier("navigation_bar_height", "dimen", "android");
             Log.i("height_13", "id:"+resourceId);
             Log.i("height_14", "高度:"+context.getResources().getDimensionPixelSize(resourceId) +"");
            return context.getResources().getDimensionPixelSize(resourceId);
        }else
            return 0;

    }

用这个方法获取底部导航栏的时候,3个不同的手机(华为,三星,opper)上测试的,都是144,不会这个是固定值吧?

这个方法获取的导航栏到底对不对?

我这3个手机,只有华为手机的底部导航栏在屏幕上,其他2个手机的底部导航栏不在屏幕上的呀,按照我的理解应该是0呀

返回顶部
顶部