/** * * @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 (ClassNotFoundException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (NumberFormatException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } } return statusHeight; }
用以上代碼測試了下小米手機1(480X854)的狀態列的高度是:38