第一种方法:
public int getStatusHeight() {
int statusBarHeight1 = -1;
//获取status_bar_height资源的ID
int resourceId = getResources().getIdentifier(“status_bar_height”, “dimen”, “android”);
if (resourceId > 0) {
//根据资源ID获取响应的尺寸值
statusBarHeight1 = getResources().getDimensionPixelSize(resourceId);
}
return statusBarHeight1;
}
第二种方法:
public int getStatusHeight(){
int statusBarHeight2 = -1;
try {
Class<?> clazz = Class.forName(“com.android.internal.R$dimen”);
Object object = clazz.newInstance();
int height = Integer.parseInt(clazz.getField(“status_bar_height”)
.get(object).toString());
statusBarHeight2 = getResources().getDimensionPixelSize(height);
} catch (Exception e) {
e.printStackTrace();
}
return statusBarHeight2;
}
第三种方法:
/**
* 获取状态栏高度——方法3
* 应用区的顶端位置即状态栏的高度
* 注意该方法不能在初始化的时候用
* */
Rect rectangle= new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(rectangle);