android通過反射獲取狀態欄的高度

/**
* 獲取狀態欄高度

* @param activity
* @return
*/
public int getStatusHeight(Activity activity) {
int statusHeight = 0;
Rect rect = new Rect();
activity.getWindow().getDecorView()
.getWindowVisibleDisplayFrame(rect);
statusHeight = rect.top;
if (0 == statusHeight) {
Class<?> localClass;
try {
localClass = Class.forName("com.android.internal.R$dimen");
Object object = localClass.newInstance();
int height = Integer.parseInt(localClass
.getField("status_bar_height").get(object)
.toString());
statusHeight = activity.getResources()
.getDimensionPixelSize(height);
} catch (Exception e) {
e.printStackTrace();
}
}
return statusHeight;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章