国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

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

2020-04-11 12:01:24
字體:
來源:轉載
供稿:網友

通過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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 米泉市| 旺苍县| 康乐县| 包头市| 伊通| 三江| 郑州市| 兴仁县| 常山县| 乐安县| 电白县| 孙吴县| 西城区| 石首市| 西城区| 丰都县| 汾阳市| 马鞍山市| 广南县| 浦东新区| 彭泽县| 申扎县| 星座| 托克逊县| 富宁县| 金阳县| 南城县| 余江县| 漾濞| 如皋市| 得荣县| 共和县| 扶沟县| 东城区| 剑河县| 贞丰县| 安康市| 曲阜市| 连山| 车致| 巴里|