Android获取设备状态栏高度的正确姿势

正确代码方式:

        int height = 0;int resourceId = getApplicationContext().getResources().getIdentifier("status_bar_height", "dimen", "android");if (resourceId > 0) {height = getApplicationContext().getResources().getDimensionPixelSize(resourceId);}

所得height即为设备屏幕状态栏高度,单位pix。该方法可以在onCreate里面直接使用,与View的初始化先后顺序无关,此方法稳定可靠,推荐使用上面的代码获取设备状态栏高度。

其他一些方法如果直接先于View初始化完成前计算高度,可能会获得的高度值为0,取不到正确的状态栏高度值。比如,下面这个方法是网上流传很广的方法,虽然在某些时候可以获取,但是在有些时候获取的状态栏高度为0:

        Rect rectangle = new Rect();Window window = getWindow();window.getDecorView().getWindowVisibleDisplayFrame(rectangle);int statusBarHeight = rectangle.top;int contentViewTop = window.findViewById(Window.ID_ANDROID_CONTENT).getTop();int titleBarHeight = contentViewTop - statusBarHeight;

这个方法获取状态栏高度值,不可靠,若onCreate里面的View未初始化加载完成,取出来的状态栏高度值为0,请小心选择使用。

Android获取设备状态栏status bar高度的正确姿势相关推荐

  1. Android 获取内部存储中音乐文件的正确姿势

    最近想写一个音乐的小APP出来(doge),借此熟悉音频开发的相关技术.但是在获取内部存储的音乐文件时踩了一些坑...所以有了这篇帖子,简单介绍下Android的存储类别,以及如何获取内部存储中的音乐 ...

  2. Android获取设备ID号

    Android获取设备ID号 Android有多种方式可以获取设备ID,但是每一种总会有一点限制,为此,整合几种方式在一起,这样就万无一失了 public class DeviceIdFactory ...

  3. Android 获取设备号

    前言 最近在对接口的时候 根据后台要求生成设备唯一id 作为key android 获取设备号比较简单 这里记录一下 实现 /*** 获取设备号* @param context* @return*/p ...

  4. Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)

    Android获取设备各项信息(设备id.ip地址.APP应用名称.设备名称.运行商.品牌.型号.分辨率.处理器.国家码.系统语言.网络类型.oaid.android版本.操作系统版本.mac地址.应 ...

  5. Android -- 获取设备硬件信息

    Android – 获取设备硬件信息 通过 Build 获取指定字段信息: 信息 方法 例子 主板 Build.BOARD PAR 系统定制商 Build.BRAND HUAWEI 硬件名称 Buil ...

  6. android设备id完美解决方法,安卓获取渠道名渠道id Android获取设备唯一标识的终极解决方法,防止安卓7.0时崩溃问题...

    一,先说获取渠道名(这里以友盟为例) /* * 4.5.1新加渠道名字段,用来传给后台去统计各个渠道下载量 * */ public static String getSource() { //获取渠道 ...

  7. Android获取顶部状态栏statusBar高度、底部导航栏navigationBar高度

    手机顶部显示时间.电量等信息的叫状态栏,即statusBar 有些手机比如华为在底部会有返回.回到主页面等虚拟功能键,这是导航栏,即navigationBar 下面列出一些项目中常用的功能代码? 嘻嘻 ...

  8. Android 获取设备各种信息以及其它

    做手机开发,想必都希望获取手机号码吧,android中有一个类android.telephony.TelephonyManager提供这个功能. TelephonyManager tm = (Tele ...

  9. Android - 获取设备信息的工具类( DeviceUtil)

    注解: 封装了安装常用的设备信息查询的工具类: 设备宽度.设备高度.SD卡判断.是否有网.版本名称.版本号.唯一标识.手机品牌.手机型号.API等级.Android版本.App进程Id.App进程Na ...

最新文章

  1. Skype for Business Server 2015-03-后端服务器-0-准备
  2. Novas Verdi、Debussy ,Synopsys VCS,Candence NC-Verilog,Mentor Graphics工具介绍
  3. java 反射 单列_轻松掌握Java单例模式
  4. 有了螃蟹让心情好一点
  5. android butterknife 自定义view,ButterKnife用法详解.md
  6. 《神经网络》学习笔记
  7. 由scanf说起之1:scanf函数和回车、空格 及其返回值
  8. 在 Centos 安装 MySQL
  9. c语言程序与结构,c语言基础与顺序结构-c语言程序设计.ppt
  10. 网络管理助力节约IT运维成本
  11. Node.js中使用AWS SNS服务发送短信
  12. editormd富文本编辑器
  13. Jedis hget连接好久没有反应
  14. imovie结合QuickTime Player进行手机视频剪辑
  15. 马云对话马斯克:福报变成了一周工作12小时?
  16. Postfix 邮件服务 - roundcube webmail
  17. 在Git上如何强推代码规范
  18. 合天靶场练习_13-17周
  19. 淘宝开店指南——店铺设置篇
  20. C++程序设计——十二

热门文章

  1. vbs直接执行批处理,修改注册表
  2. 细数 Windows 平台上的 NoSQL 数据库
  3. IT项目管理之系统部署
  4. 自制Ghost XP SP3 启动光盘(一)
  5. 数组的一些常用方法记录
  6. linux下memcached安装 和redis安装,jdk,tomcat,mysql 安装
  7. 【133天】尚学堂高淇Java300集视频精华笔记(71-72)
  8. iOS - OC NSPoint 位置
  9. mac curl命令下载文件
  10. redis增删改查封装