前言

最近在做一个关于FAB的功能的时候需要获取状态栏的高度,在网上查了很多种方法,下面是选出的比较合理的两个方法。主要参考stackoverflow的这篇问答:http://stackoverflow.com/questions/3407256/height-of-status-bar-in-android
方法一:
private double getStatusBarHeight(Context context){
double statusBarHeight = Math.ceil(25 * context.getResources().getDisplayMetrics().density);
return statusBarHeight;
}
这种方法很简单,只有一行代码,查过参考手册后可以翻译一下:
状态栏高度=取大于其的最小整数(25*上下文_获取应用包的资源实例_获取当前屏幕尺寸_屏幕密度比例)
其中density并不是真实的屏幕密度,而是一个相对密度,基准密度为160dpi,比如我测试的手机为HTC one m8,查的屏幕密度为441dpi,相对160为2.75,density就取为3。各分辨率的density取值为:
所以得到的状态栏高度为25*3=75
由这种方法得到的状态栏高度具有较大局限性,比如因为某种需要去掉状态栏或本身没有状态栏,此时状态栏高度应为0,但是该方法依然能够得到一个非零的状态栏高度。
方法二:
private int getStatusBarHeight(Context context) {
int result = 0;
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = context.getResources().getDimensionPixelSize(resourceId);
}
return result;
}
这里我们用到了getIdentifier()的方法来获取资源的ID,其中第一个参数是要获取资源对象的名称,比如我们要获取状态栏的相关内容,这里填入"status_bar_height";第二个参数是我们要获取什么属性,我们要获取高度内容,所以填入"dimen";第三个是包名,状态栏是系统内容,故填入“android”。
另外一个用到的办法是getDimensionPixelSize() ,由函数名就能知道是根据资源ID获得资源像素尺寸,这里就直接获得状态栏的高度。
这种方法在状态栏不存在的时候就会获得其高度为0.
总结
以上就是这篇文章的全部内容了,希望本文的内容对各位Android开发者们能带来一定的帮助,如果有疑问大家可以留言交流。
# Android获取状态栏高度
# android
# 取状态栏高度
# 安卓状态栏高度
# Android获取手机屏幕宽高、状态栏高度以及字符串宽高信息的方法
# Android 获取屏幕高度
# 标题高度
# 状态栏高度(实例代码)
# Android 取得状态栏、任务栏高度的小例子
# Android有效获取状态栏(StatusBar)高度的方法
# Android编程实现获取标题栏、状态栏的高度、屏幕大小及模拟Home键的方法
# Android编程实现获取系统内存、CPU使用率及状态栏高度的方法示例
# Android如何获取屏幕、状态栏及标题栏的高度详解
# 状态栏
# 填入
# 这种方法
# 就会
# 相关内容
# 第一个
# 就能
# 第二个
# 很简单
# 不存在
# 做一个
# 种方法
# 另外一个
# 这篇文章
# 这篇
# 第三个
# 于其
# 方法来
# 值为
# 各分
相关文章:
兔展官网 在线制作,怎样制作微信请帖?
文字头像制作网站推荐软件,醒图能自动配文字吗?
如何通过虚拟主机快速搭建个人网站?
如何续费美橙建站之星域名及服务?
建站主机选择指南:服务器配置与SEO优化实战技巧
如何确保西部建站助手FTP传输的安全性?
济南企业网站制作公司,济南社保单位网上缴费步骤?
电商平台网站制作流程,电商网站如何制作?
建站之星如何一键生成手机站?
如何使用Golang安装API文档生成工具_快速生成接口文档
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
广州建站公司哪家好?十大优质服务商推荐
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
如何用腾讯建站主机快速创建免费网站?
网站制作壁纸教程视频,电脑壁纸网站?
建站主机SSH密钥生成步骤及常见问题解答?
如何高效配置IIS服务器搭建网站?
如何快速完成中国万网建站详细流程?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
免费视频制作网站,更新又快又好的免费电影网站?
建站之星代理商如何保障技术支持与售后服务?
建站主机解析:虚拟主机配置与服务器选择指南
广州顶尖建站服务:企业官网建设与SEO优化一体化方案
宿州网站制作公司兴策,安徽省低保查询网站?
如何用PHP快速搭建高效网站?分步指南
香港服务器网站推广:SEO优化与外贸独立站搭建策略
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
西安大型网站制作公司,西安招聘网站最好的是哪个?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
代刷网站制作软件,别人代刷火车票靠谱吗?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何实现建站之星域名转发设置?
如何获取上海专业网站定制建站电话?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
大同网页,大同瑞慈医院官网?
nginx修改上传文件大小限制的方法
如何快速生成高效建站系统源代码?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
广州营销型建站服务商推荐:技术优势与SEO优化解析
建站之星如何修改网站生成路径?
创业网站制作流程,创业网站可靠吗?
简单实现Android验证码
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
微课制作网站有哪些,微课网怎么进?
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何快速上传自定义模板至建站之星?
如何用PHP快速搭建CMS系统?
*请认真填写需求信息,我们会在24小时内与您取得联系。