Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 獲取屏幕高度,標題高度,狀態欄高度(實例代碼)

Android 獲取屏幕高度,標題高度,狀態欄高度(實例代碼)

編輯:關於Android編程

通過View提供的方法獲取高度方式有兩種:

1, 當前顯示的view中直接獲取當前view高寬
2, 通過Activity的getWindow().findViewById(Window.ID_ANDROID_CONTENT)獲取系統當前顯示的 view根(是一個framelayout對象),android繪制會將要繪制的view放置在framelayout中繪制。

Display對象獲取屏幕高寬 :



獲取display對象 Activity中getWindowManager().getDefaultDisplay()
getWidth() 返回顯示界面寬度即屏幕寬度
getHeight() 返回顯示界面高度即屏幕高度

由display對象設置DisplayMetrics高寬值,通過DisplayMetrics對象獲取屏幕高寬,有點多此一舉 :
getWidth() 返回顯示界面寬度即屏幕寬度
getHeight() 返回顯示界面高度即屏幕高度

常用一些值計算:

屏幕高寬
Canvas對象 、display對象和DisplayMetrics可獲取屏幕的高寬

狀態欄高度
View的getWindowVisibleDisplayFrame(Rect outRect)附值outRect後,outRect.top()即是狀態欄高度

標題高度
View的getWindowVisibleDisplayFrame(Rect outRect1)附值outRect後,outRect.height()-view.getheight()即是標題高度。

1.獲取狀態欄高度:

decorView是window中的最頂層view,可以從window中獲取到decorView,然後decorView有個getWindowVisibleDisplayFrame方法可以獲取到程序顯示的區域,包括標題欄,但不包括狀態欄。

於是,我們就可以算出狀態欄的高度了。
復制代碼 代碼如下:
 Rect frame = new Rect();
  getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
  int statusBarHeight = frame.top;

2.獲取標題欄高度:

getWindow().findViewById(Window.ID_ANDROID_CONTENT)這個方法獲取到的view就是程序不包括標題欄的部分,然後就可以知道標題欄的高度了。
復制代碼 代碼如下:
int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
  //statusBarHeight是上面所求的狀態欄的高度
  int titleBarHeight = contentTop - statusBarHeight

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved