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是否显示的方法(获取屏幕真实的高度),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
AndroidStudio修改Code Style来格式化自定义标签的xml文件方式
这篇文章主要介绍了AndroidStudio修改Code Style来格式化自定义标签的xml文件方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-03-03Android基于AdapterViewFlipper实现的图片/文字轮播动画控件
这篇文章主要介绍了Android基于AdapterViewFlipper实现的图片/文字轮播动画控件,帮助大家更好的理解和学习使用Android开发,感兴趣的朋友可以了解下2021-04-04ListView的Adapter使用(绑定数据) 之 自定义每一项的布局去绑定数据
之前写的绑定数据是只是简单的绑定了字符串,这次我们将一次绑定多条数据并且尝试用自定义的布局。在这篇文章中首先讲解的是用Hashmap 去绑定数据,第二个例子,讲解自定义布局然后绑定数据2013-06-06Flutter自定义下拉刷新时的loading样式的方法详解
Flutter中的下拉刷新,我们通常RefreshIndicator,可以通过color或strokeWidth设置下拉刷新的颜色粗细等样式,但如果要自定义自己的widget,RefreshIndicator并没有暴露出对应的属性,那如何修改呢,文中给大家介绍的非常详细,需要的朋友可以参考下2024-01-01Android编程实现webview执行loadUrl时隐藏键盘的workround效果
这篇文章主要介绍了Android编程实现webview执行loadUrl时隐藏键盘的workround效果,较为详细的分析了执行loadUrl时隐藏键盘的workround具体步骤与两种实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下2015-10-10android编程实现设置、打开wifi热点共享供他人连接的方法
这篇文章主要介绍了android编程实现设置、打开wifi热点共享供他人连接的方法,涉及Android创建WiFi及设置共享的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下2015-11-11
最新评论