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

简介: Android获取设备状态栏高度的正确姿势正确代码方式: int height = 0; int resourceId = getApplicationContext().

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,请小心选择使用。

相关文章
|
1月前
|
编解码 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)1
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
62 1
|
7天前
|
Android开发
Android 状态栏WiFi图标的显示逻辑
Android 状态栏WiFi图标的显示逻辑
24 0
|
7天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
14 0
|
1月前
|
编解码 开发工具 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
38 2
|
4天前
|
安全 物联网 Android开发
构建未来:Android与IoT设备的无缝集成
【5月更文挑战第10天】 在数字化时代的浪潮中,智能设备与互联网的结合日益紧密。本文深入探讨了Android系统如何通过其开放性和灵活性成为连接物联网(IoT)设备的关键枢纽。我们将分析Android平台与IoT设备集成的技术途径,探索它们如何共同塑造智能家居、可穿戴技术以及工业自动化等领域的未来。文中不仅阐述了当前的发展状况,还展望了未来的发展趋势,特别是安全性和隐私保护方面的挑战及对策。
|
7天前
|
Android开发 异构计算
高通android设备themal读取cpu温度
高通android设备themal读取cpu温度
10 0
|
7天前
|
Java Android开发 Kotlin
Android Dialog 弹出时,隐藏 navigation bar
Android Dialog 弹出时,隐藏 navigation bar
15 1
|
7天前
|
API Android开发
Android 打开通知中心(StatusBar)
Android 打开通知中心(StatusBar)
9 0
|
7天前
|
Android开发
Android 设备清理内存 RAM
Android 设备清理内存 RAM
9 0
|
8天前
|
Android开发
通过反射方式获取Android设备系统属性
通过反射方式获取Android设备系统属性
16 2