刚做一个东西,画图的时候 需要获取状态栏的高度,但是每次获取到的都是0,找了好多资料,终于找到了方法,代码如下:
- /**
- *
- * @param activity
- * @return > 0 success; <= 0 fail
- */
- public static int getStatusHeight(Activity activity){
- int statusHeight = 0;
- Rect localRect = new Rect();
- activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect);
- statusHeight = localRect.top;
- if (0 == statusHeight){
- Class<?> localClass;
- try {
- localClass = Class.forName("com.android.internal.R$dimen");
- Object localObject = localClass.newInstance();
- int i5 = Integer.parseInt(localClass.getField("status_bar_height").get(localObject).toString());
- statusHeight = activity.getResources().getDimensionPixelSize(i5);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return statusHeight;
- }