欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2024-02-01 12:02:34
android获取设备状态栏高度的正确姿势 正确代码方式: int height = 0; int resourceid = getapplicationcon...

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