当前位置: 移动技术网 > IT编程>移动开发>Android > Android判断NavigationBar是否显示的方法(获取屏幕真实的高度)

Android判断NavigationBar是否显示的方法(获取屏幕真实的高度)

2019年07月24日  | 移动技术网IT编程  | 我要评论

柯达币,邪恶力量第十三季下载,蔡健雅 无底洞

有些时候,我们需要知道当前手机上是否显示了navigationbar,也就是屏幕底部的虚拟按键。

比如截屏的时候,要获取屏幕的高度,必须包括navigationbar的高度。

试过网上的多种方法,但是对那种可以通过手势来显示/隐藏的navigationbar没办法,最后终于找到了一个好办法,看代码:

public boolean isnavigationbarshow(){
  if (build.version.sdk_int >= build.version_codes.jelly_bean_mr1) {
    display display = getwindowmanager().getdefaultdisplay();
    point size = new point();
    point realsize = new point();
    display.getsize(size);
    display.getrealsize(realsize);
    return realsize.y!=size.y;
  }else {
    boolean menu = viewconfiguration.get(this).haspermanentmenukey();
    boolean back = keycharactermap.devicehaskey(keyevent.keycode_back);
    if(menu || back) {
      return false;
    }else {
      return true;
    }
  }
}
public static int getnavigationbarheight(activity activity) {
  if (!isnavigationbarshow(activity)){
    return 0;
  }
  resources resources = activity.getresources();
  int resourceid = resources.getidentifier("navigation_bar_height",
      "dimen", "android");
  //获取navigationbar的高度
  int height = resources.getdimensionpixelsize(resourceid);
  return height;
}
public static int getsceenheight(activity activity) {
  return activity.getwindowmanager().getdefaultdisplay().getheight()+getnavigationbarheight(activity);
}

具体代码可以参考bigbang项目的viewutil中的处理。

以上所述是小编给大家介绍的android判断navigationbar是否显示的方法(获取屏幕真实的高度),希望对大家有所帮助

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网