柯达币,邪恶力量第十三季下载,蔡健雅 无底洞
有些时候,我们需要知道当前手机上是否显示了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 apk 项目一键打包并上传到蒲公英的实现方法
Android 自定义LineLayout实现满屏任意拖动功能的示例代码
android 限制某个操作每天只能操作指定的次数(示例代码详解)
Android 集成 google 登录并获取性别等隐私信息的实现代码
网友评论