当前位置: 首页 > 编程笔记 >

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

翟俊名
2023-03-14
本文向大家介绍Android判断NavigationBar是否显示的方法(获取屏幕真实的高度),包括了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判断屏幕是横屏或是竖屏的简单实现方法,包括了Android判断屏幕是横屏或是竖屏的简单实现方法的使用技巧和注意事项,需要的朋友参考一下 本文所述为一个Android的常用技巧代码,主要用于判断手机屏幕是横向或是竖向的,在判断屏幕水平或垂直后你可以对程序做出相应的响应,该实例代码只是判断是否为竖屏,若判断正确返回true,否则返回false。 具体的程序代码如下:

  • 问题内容: 我想获取运行我的应用程序的设备的实际屏幕高度。为此,我尝试以下操作: 我使用模拟器运行的设备的屏幕宽度为1080像素,屏幕高度为1920像素。宽度可以正确显示(1080像素),但根据应用程序,高度仅为1776像素。我需要什么来使我的应用显示正确的屏幕高度?是让屏幕高度的好方法? 问题答案: 看到这个答案 如果您的API级别> 13,请在活动时尝试 如果您不在活动中,则可以通过WINDO

  • 本文向大家介绍jQuery实现判断控件是否显示的方法,包括了jQuery实现判断控件是否显示的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery实现判断控件是否显示的方法。分享给大家供大家参考,具体如下: 核心代码: 实例代码1: jQuery判断div是否隐藏实例 更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery页面元素操作技巧汇总》、《jQuery扩

  • 本文向大家介绍Android编程实现获得手机屏幕真实宽高的方法,包括了Android编程实现获得手机屏幕真实宽高的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程实现获得手机屏幕真实宽高的方法。分享给大家供大家参考,具体如下: 补:改进版 (弥补了原先非支持版本的一些异常): 希望本文所述对大家Android程序设计有所帮助。

  • 在Android系统中如何获得屏幕的可用高度?我需要的高度减去状态栏/菜单栏或任何其他可能在屏幕上的装饰,我需要它为所有设备工作。另外,我需要在onCreate函数中了解这一点。我知道这个问题以前有人问过,但我已经尝试过他们的解决方案,但没有一个奏效。以下是我尝试过的一些事情: 我已经在API7-17上测试了这段代码。不幸的是,在API 13的底部水平和垂直都有额外的空间,而在API 10、8和7

  • 函数功能:判断屏幕是否亮屏 函数方法 bool = device.isWake() 返回值 类型 说明 bool string true - 屏幕亮屏,false - 屏幕黑屏 函数用例 bool = device.isWake() if bool then toast("屏幕亮屏",2) mSleep(3000) else toast("屏幕黑屏",2) mSle