最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android中獲取狀態(tài)欄高度的兩種方法分享

 更新時間:2017年02月10日 14:27:19   投稿:daisy  
在android應(yīng)用中,有時需要計算個View的位置,導(dǎo)致需要計算狀態(tài)欄高度。為以后方便,在此做個簡單記錄。下面這篇文章主要介紹了Android中獲取狀態(tài)欄高度的兩種方法,兩種方法分別給出了示例代碼,有需要的朋友可以參考借鑒。

前言

最近在做一個關(guān)于FAB的功能的時候需要獲取狀態(tài)欄的高度,在網(wǎng)上查了很多種方法,下面是選出的比較合理的兩個方法。主要參考stackoverflow的這篇問答:http://stackoverflow.com/questions/3407256/height-of-status-bar-in-android

方法一:

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

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

狀態(tài)欄高度=取大于其的最小整數(shù)(25*上下文_獲取應(yīng)用包的資源實例_獲取當(dāng)前屏幕尺寸_屏幕密度比例)

其中density并不是真實的屏幕密度,而是一個相對密度,基準(zhǔn)密度為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)

所以得到的狀態(tài)欄高度為25*3=75

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

方法二:

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,其中第一個參數(shù)是要獲取資源對象的名稱,比如我們要獲取狀態(tài)欄的相關(guān)內(nèi)容,這里填入"status_bar_height";第二個參數(shù)是我們要獲取什么屬性,我們要獲取高度內(nèi)容,所以填入"dimen";第三個是包名,狀態(tài)欄是系統(tǒng)內(nèi)容,故填入“android”。

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

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對各位Android開發(fā)者們能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

最新評論

邹平县| 昔阳县| 东乡县| 湛江市| 嘉黎县| 弥渡县| 酒泉市| 布尔津县| 东源县| 眉山市| 延川县| 小金县| 开平市| 云和县| 疏勒县| 德保县| 高安市| 临沭县| 上栗县| 扎赉特旗| 盐山县| 乃东县| 栖霞市| 正阳县| 炎陵县| 南华县| 肇源县| 泸定县| 霞浦县| 克东县| 巫山县| 门源| 平谷区| 枣阳市| 敦煌市| 左权县| 宜阳县| 麦盖提县| 永福县| 墨江| 兴城市|