当前位置: 移动技术网 > 移动技术>移动开发>Android > Android获取设备状态栏status bar高度的正确姿势

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

2018年09月17日  | 移动技术网移动技术  | 我要评论

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网