Android判断NavigationBar是否显示的方法(获取屏幕真实的高度)
发布时间 - 2026-01-10 22:21:37 点击率:次有些时候,我们需要知道当前手机上是否显示了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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
JavaScript如何实现音频处理_Web Audio API如何工作?
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
微信小程序 wx.uploadFile无法上传解决办法
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
专业商城网站制作公司有哪些,pi商城官网是哪个?
EditPlus 正则表达式 实战(3)
高防服务器租用如何选择配置与防御等级?
Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
EditPlus中的正则表达式实战(6)
免费视频制作网站,更新又快又好的免费电影网站?
如何快速搭建支持数据库操作的智能建站平台?
Laravel如何实现API版本控制_Laravel API版本化路由设计策略
JS中对数组元素进行增删改移的方法总结
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
QQ浏览器网页版登录入口 个人中心在线进入
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
香港服务器网站卡顿?如何解决网络延迟与负载问题?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
如何快速生成可下载的建站源码工具?
教学论文网站制作软件有哪些,写论文用什么软件
?
Laravel如何使用.env文件管理环境变量?(最佳实践)
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
Linux后台任务运行方法_nohup与&使用技巧【技巧】
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
js代码实现下拉菜单【推荐】
如何用虚拟主机快速搭建网站?详细步骤解析
香港服务器WordPress建站指南:SEO优化与高效部署策略
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
如何在阿里云ECS服务器部署织梦CMS网站?
怎么用AI帮你为初创公司进行市场定位分析?
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
浅谈Javascript中的Label语句
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
Laravel如何使用Vite进行前端资源打包?(配置示例)
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层
焦点电影公司作品,电影焦点结局是什么?
如何用低价快速搭建高质量网站?
如何快速查询网址的建站时间与历史轨迹?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
Python并发异常传播_错误处理解析【教程】
JavaScript如何实现继承_有哪些常用方法
上一篇:php workerman
上一篇:php workerman

