91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android怎樣獲取屏幕、狀態欄及標題欄的高度

發布時間:2021-02-20 11:42:55 來源:億速云 閱讀:211 作者:小新 欄目:移動開發

這篇文章主要介紹了Android怎樣獲取屏幕、狀態欄及標題欄的高度,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

在開始之前,先來看一張圖:

Android怎樣獲取屏幕、狀態欄及標題欄的高度

  • 綠色區域:屏幕區域

  • 藍色區域:狀態欄區域

  • 紅色區域:標題欄區域

  • 黃色區域:view繪制區域

1.Android手機屏幕的高度

整個手機使用發亮,不使用變黑的部分,綠色區域

獲取屏幕的高度方法一

  DisplayMetrics dm = new DisplayMetrics();
  getWindowManager().getDefaultDisplay().getMetrics(dm);
  Log.e("TAG", "屏幕高:" + dm.heightPixels);

獲取屏幕的高度方法二

DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
  Log.e("TAG","screenHeight"+displayMetrics.heightPixels);

2.Android手機狀態欄的高度(藍色區域)

狀態欄指的是,手機最上方顯示,系統時間,電量等等區域。

獲取狀態欄高度方法一

int statusBarHeight1 = -1; 
 //獲取status_bar_height資源的ID 
 int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); 
 if (resourceId > 0) { 
  //根據資源ID獲取響應的尺寸值 
  statusBarHeight1 = getResources().getDimensionPixelSize(resourceId); 
 } 
 Log.e("TAG", "方法1:" + statusBarHeight1);

獲取狀態欄高度方法二

int statusBarHeight1 = -1; 
 //獲取status_bar_height資源的ID 
 int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); 
 if (resourceId > 0) { 
  //根據資源ID獲取響應的尺寸值 
  statusBarHeight1 = getResources().getDimensionPixelSize(resourceId); 
 } 
 Log.e("TAG", "方法1:" + statusBarHeight1);

獲取狀態欄高度方法二

 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(); 
  } 
  Log.e("TAG", "方法2:" + statusBarHeight2);

獲取狀態欄高度方法三:

狀態欄高度 = 屏幕高度 - 應用區高度

//屏幕 
  DisplayMetrics dm = new DisplayMetrics(); 
  getWindowManager().getDefaultDisplay().getMetrics(dm); 
  //應用區域 
  Rect outRect1 = new Rect(); 
  getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect1); 
  int statusBar = dm.heightPixels - outRect1.height(); //狀態欄高度=屏幕高度-應用區域高度 
  Log.e("WangJ", "方法3:" + statusBar);

3.Android手機應用區域(紅+黃區域)

手機應用區域=標題欄+View繪制區域(setcontent()中設置的布局)

獲取手機以應用區域

//應用區域
  Rect outRect1 = new Rect();
  getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect1);
   Log.e("TAG", "應用區高" + outRect1.height());

4.Android手機標題高度(紅色區域)

int viewTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
 Log.e("TAG", "標題欄:" + viewTop);

5.Android手機繪制區域高度(黃色區域)

Rect outRect2 = new Rect();
  getWindow().findViewById(Window.ID_ANDROID_CONTENT).getDrawingRect(outRect2);
  Log.e("TAG", "View繪制區域高度:" + outRect2.height());

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Android怎樣獲取屏幕、狀態欄及標題欄的高度”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

华坪县| 连云港市| 龙南县| 温宿县| 河东区| 黎城县| 迁西县| 亚东县| 丽水市| 湟源县| 宜春市| 株洲县| 阿拉善盟| 青神县| 原平市| 晋江市| 林芝县| 中西区| 大城县| 梅河口市| 沁阳市| 巴南区| 旺苍县| 绥阳县| 高台县| 涞水县| 江门市| 龙泉市| 固阳县| 嵩明县| 新乡市| 宣城市| 陈巴尔虎旗| 雅安市| 定陶县| 巨鹿县| 梓潼县| 文安县| 云安县| 民勤县| 盘山县|