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

溫馨提示×

溫馨提示×

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

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

Android項目中如何實現獲取狀態欄的高度

發布時間:2020-11-21 17:18:26 來源:億速云 閱讀:275 作者:Leah 欄目:移動開發

這篇文章將為大家詳細講解有關Android項目中如何實現獲取狀態欄的高度,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

方法一:

private double getStatusBarHeight(Context context){
  double statusBarHeight = Math.ceil(25 * context.getResources().getDisplayMetrics().density);
  return statusBarHeight;
 }

這種方法很簡單,只有一行代碼,查過參考手冊后可以翻譯一下:

狀態欄高度=取大于其的最小整數(25*上下文_獲取應用包的資源實例_獲取當前屏幕尺寸_屏幕密度比例)

其中density并不是真實的屏幕密度,而是一個相對密度,基準密度為160dpi,比如我測試的手機為HTC one m8,查的屏幕密度為441dpi,相對160為2.75,density就取為3。各分辨率的density取值為:

  1. ldpi (dpi=120,density=0.75)
  2. mdpi (dpi=160,density=1)
  3. hdpi (dpi=240,density=1.5)
  4. xhdpi (dpi=320,density=2)
  5. xxhdpi (dpi=480,density=3)
     

所以得到的狀態欄高度為25*3=75

由這種方法得到的狀態欄高度具有較大局限性,比如因為某種需要去掉狀態欄或本身沒有狀態欄,此時狀態欄高度應為0,但是該方法依然能夠得到一個非零的狀態欄高度。

方法二:

private int getStatusBarHeight(Context context) {
  int result = 0;
  int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
  if (resourceId > 0) {
   result = context.getResources().getDimensionPixelSize(resourceId);
  }
  return result;
 }

這里我們用到了getIdentifier()的方法來獲取資源的ID,其中第一個參數是要獲取資源對象的名稱,比如我們要獲取狀態欄的相關內容,這里填入"status_bar_height";第二個參數是我們要獲取什么屬性,我們要獲取高度內容,所以填入"dimen";第三個是包名,狀態欄是系統內容,故填入“android”。

另外一個用到的辦法是getDimensionPixelSize() ,由函數名就能知道是根據資源ID獲得資源像素尺寸,這里就直接獲得狀態欄的高度。

這種方法在狀態欄不存在的時候就會獲得其高度為0.

關于Android項目中如何實現獲取狀態欄的高度就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

融水| 巩留县| 丰宁| 曲阜市| 五家渠市| 杂多县| 莫力| 教育| 南乐县| 清水河县| 涿州市| 玉门市| 玉环县| 东城区| 连城县| 九龙县| 高尔夫| 射洪县| 定日县| 大化| 外汇| 太湖县| 随州市| 桃源县| 桓台县| 临武县| 尤溪县| 黎川县| 宝应县| 阿鲁科尔沁旗| 惠安县| 浮山县| 称多县| 田东县| 广德县| 平湖市| 思南县| 阿拉善左旗| 关岭| 上犹县| 施甸县|