碰到了需要获取状态栏高度的问题,网上找了一些方法来获取状态栏高度,结果都是为0.
还好,牛人还是很多的,当时,找到一段代码,能够有效的获取状态栏的高度。以供大家参考。
Class<?> c = null;
Object obj = null;
Field field = null;
int x = 0, sbar = 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());
sbar = getResources().getDimensionPixelSize(x);
} catch (Exception e1) {
loge("get status bar height fail");
e1.printStackTrace();
}
View高度:
public static int getViewHeight(Activity activity, View view) {
view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int height = view.getMeasuredHeight();
return height;
}