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,