全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

有些时候,我们需要知道当前手机上是否显示了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是否显示的方法(获取屏幕真实的高度),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# android  # navigationbar  # Android 沉浸式状态栏与隐藏导航栏实例详解  # Android编程中沉浸式状态栏的三种实现方式详解  # Android NavigationBar问题处理的方法  # Android之沉浸式状态栏的实现方法、状态栏透明  # Android实现沉浸式导航栏实例代码  # Android隐藏和沉浸式虚拟按键NavigationBar的实现方法  # 小编  # 在此  # 没办法  # 可以通过  # 给大家  # 试过  # 机上  # 所述  # 给我留言  # 好办法  # 感谢大家  # 疑问请  # 有任何  # 找到了  # 网上  # Display  # VERSION_CODES  # VERSION  # SDK_INT  # gt 


相关文章: 在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  制作证书网站有哪些,全国城建培训中心证书查询官网?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  文字头像制作网站推荐软件,醒图能自动配文字吗?  网站微信制作软件,如何制作微信链接?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  海南网站制作公司有哪些,海口网是哪家的?  平台云上自主建站:模板化设计与智能工具打造高效网站  实现虚拟支付需哪些建站技术支撑?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  简单实现Android文件上传  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  ,想在网上投简历,哪几个网站比较好?  香港网站服务器数量如何影响SEO优化效果?  ,交易猫的商品怎么发布到网站上去?  建站主机服务器选型指南与性能优化方案解析  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Swift中循环语句中的转移语句 break 和 continue  大连 网站制作,大连天途有线官网?  如何用低价快速搭建高质量网站?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  如何通过山东自助建站平台快速注册域名?  如何在云服务器上快速搭建个人网站?  清除minerd进程的简单方法  网站制作软件有哪些,制图软件有哪些?  建站之星如何助力网站排名飙升?揭秘高效技巧  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  北京的网站制作公司有哪些,哪个视频网站最好?  智能起名网站制作软件有哪些,制作logo的软件?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  高防服务器租用如何选择配置与防御等级?  高防服务器租用指南:配置选择与快速部署攻略  XML的“混合内容”是什么 怎么用DTD或XSD定义  网站制作说明怎么写,简述网页设计的流程并说明原因?  子杰智能建站系统|零代码开发与AI生成SEO优化指南  动图在线制作网站有哪些,滑动动图图集怎么做?  如何快速打造个性化非模板自助建站?  C#怎么使用委托和事件 C# delegate与event编程方法  用v-html解决Vue.js渲染中html标签不被解析的问题  网站制作难吗安全吗,做一个网站需要多久时间?  c++ stringstream用法详解_c++字符串与数字转换利器  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  定制建站策划方案_专业建站与网站建设方案一站式指南  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何快速建站并高效导出源代码?  ,购物网站怎么盈利呢?  如何通过虚拟主机空间快速建站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。