zoukankan      html  css  js  c++  java
  • android获取状态栏高度为0的解决办法

    网上流行一段代码 获取状态栏高度 如下:

    Rect frame = new Rect();

    getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);

    int statusBarHeight = frame.top;

    但是这个方法在 onCreate()方法中,获取高度为0 

    不在onCreate()方法中是有效的

    现提供一方法,可以在任何时候都能获得正常高度。

        //获取手机状态栏高度
        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;
        }
    Conquer Android开发者群95426703,Q:1532507234, 1532507234@qq.com,
  • 相关阅读:
    闭包 (Closure)
    RSA算法
    HTTPS
    SSH
    HDU1754 I hate it_线段树(入门级别)
    HDU1166 敌兵布阵_线段树
    c++运算符优先级表
    归并排序练习.
    HDU 1969 精度二分
    uva10944 状态压缩bfs or DP
  • 原文地址:https://www.cnblogs.com/renkangke/p/3101375.html
Copyright © 2011-2022 走看看