/**
* 獲取狀態(tài)欄高度
* 該方法獲取需要在onWindowFocusChanged方法回調(diào)之后
*
* @param context
* @return
*/
public static int getStatusBarHeight(Context context) {
int statusBarHeight = getStatusBarByResId(context);
if (statusBarHeight <= 0) {
statusBarHeight = getStatusBarByReflex(context);
}
return statusBarHeight;
}
/**
* 通過狀態(tài)欄資源id來獲取狀態(tài)欄高度
*
* @param context
* @return
*/
private static int getStatusBarByResId(Context context) {
int height = 0;
//獲取狀態(tài)欄資源id
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
try {
height = context.getResources().getDimensionPixelSize(resourceId);
} catch (Exception e) {
}
}
return height;
}
/**
* 通過Activity的內(nèi)容距離頂部高度來獲取狀態(tài)欄高度,該方法獲取需要在onWindowFocusChanged回調(diào)之后
*
* @param activity
* @return
*/
public static int getStatusBarByTop(Activity activity) {
Rect rect = new Rect();
Window window = activity.getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rect);
return rect.top;
}
/**
* 通過反射獲取狀態(tài)欄高度
*
* @param context
* @return
*/
private static int getStatusBarByReflex(Context context) {
int statusBarHeight = 0;
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());
statusBarHeight = context.getResources().getDimensionPixelSize(height);
} catch (Exception e) {
e.printStackTrace();
}
return statusBarHeight;
}
android獲取狀態(tài)欄高度
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 獲取狀態(tài)欄高度 //獲取status_bar_height資源的ID intresourceId = getRes...
- 在android中我目前已知有兩種獲取狀態(tài)欄高度的方法: 1. 在activity中獲取狀態(tài)欄高度 2. 通過反射...
- 手機(jī)頂部顯示時(shí)間、電量等信息的叫狀態(tài)欄,即statusBar有些手機(jī)比如華為在底部會(huì)有返回、回到主頁面等虛擬功能鍵...
- RSA前端生成公私鑰對(duì)、私鑰簽名、公鑰驗(yàn)簽,前端打雜多年,第一次需要搞到這個(gè)鬼東西,一開始我內(nèi)心有一百個(gè)拒絕拒絕拒...