获取通知栏高度

网上有很多种,很多是需要getWindow()方法,必须在Activity里;但是最近我要在fragment中得到通知栏高度,而且最好是提出公用方法可以在任何地方调用获取。

所以查找资料整理了几个:


公用方法的:

    public static int getStatusBarHeight(Context context){  
            Class<?> c = null;  
            Object obj = null;  
            Field field = null;  
            int x = 0, statusBarHeight = 0;  
            try {  
                c = Class.forName("com.android.internal.R$dimen");  
                obj = c.newInstance();  
                field = c.getField("status_bar_height");  
                x = Integer.parseInt(field.get(obj).toString());  
                statusBarHeight = context.getResources().getDimensionPixelSize(x);  
            } catch (Exception e1) {  
                e1.printStackTrace();  
            }   
            return statusBarHeight;  
        }  

经常用的,最常见的:

    private int getStatusBarHeight(){  
       Rect rect = new Rect();  
       getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);  
       return rect.top;  
    }  

在别人整理的看见过,但没用过

    public static int getStatusBarHeight() {  
            return Resources.getSystem().getDimensionPixelSize(  
                    Resources.getSystem().getIdentifier("status_bar_height", "dimen", "android"));  
        }  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值