Android-->狀態(tài)欄高度,導航欄高度,Window高度,DecorView高度,heightPixels

喔...這標題,嚇我一跳;

請稍等....

思緒整理中...

Android中, 經(jīng)常被這些高度絆腳. 完全進入懵逼的狀態(tài), 有木有?

請允許我,介紹清楚!

通常情況下, 寬度都是很友好的,但是高度就呵呵, 所以本文只介紹高度的計算.


1:DecorView的高度
DecorView的高度代表的是: 整個裝飾窗口的高度, 這個高度包括:狀態(tài)爛的高度和導航欄的高度.(狀態(tài)欄和導航欄通常叫做裝飾窗口, 而ActionBar不屬于裝飾窗口)

這個高度, 可以代表著整個玻璃屏幕的高度.


2.Window的RootView的高度
RootView的獲取方式:getWindow().findViewById(Window.ID_ANDROID_CONTENT);

這個View對應的高度, 可以表示當前應用程序的有效高度.
在沒有任何修飾的情況下, 應用程序的高度是去掉狀態(tài)欄和導航欄后的高度;

也就是 (DecorView的高度)-(狀態(tài)欄的高度)-(導航欄的高度);

但是,如果你使用:
setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
這個方法, 那么RootView的高度會和DecorView的高度相等;


3:heightPixels的高度
heightPixels
這個高度表示...屏幕有效的高度;;;
什么意思呢?
就是:DecorView的高度去掉導航欄的高度.
這個高度不管你有沒有隱藏導航欄, 這個值都不會改變;

所以:
番外:如果你想知道你的手機有沒有導航欄:
如果 (DecorView的高度)-(heightPixels) > 0 說明 你的手機有導航欄

番外:如果你想知道你的程序有沒有隱藏導航欄:
情況1:設置了SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN屬性:
如果 (RootView的高度)-(heightPixels) > 0 說明 顯示了導航欄

情況2:沒有設置SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN屬性:
如果 (RootView的高度+狀態(tài)欄的高度)-(heightPixels) > 0 說明 顯示了導航欄


附加1 獲取狀態(tài)欄的高度
正常情況下: (heightPixels) - (RootView的高度) = 狀態(tài)欄的高度
但是如果你設置了View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN或者View.SYSTEM_UI_FLAG_HIDE_NAVIGATION屬性的話,,,這種方法就不準確了.

萬能,100%準確的方法:
getResources().getDimensionPixelSize(getResources().getIdentifier("status_bar_height", "dimen", "android"));

附加2:獲取導航欄的高度
正常情況下: (DecorView的高度) - (heightPixels) = 導航欄的高度
但是如果你設置了View.SYSTEM_UI_FLAG_HIDE_NAVIGATION屬性的話,,,這種方法就不準確了.

萬能,100%準確的方法:
getResources().getDimensionPixelSize(getResources().getIdentifier("navigation_bar_height", "dimen", "android"));


至此: 文章就結束了,如有疑問: QQ群 Android:274306954 Swift:399799363 歡迎您的加入.

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子钠至,更是在濱河造成了極大的恐慌饱岸,老刑警劉巖啼肩,帶你破解...
    沈念sama閱讀 212,657評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件术荤,死亡現(xiàn)場離奇詭異,居然都是意外死亡凰狞,警方通過查閱死者的電腦和手機豁陆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,662評論 3 385
  • 文/潘曉璐 我一進店門柑爸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盒音,你說我怎么就攤上這事表鳍∠诙” “怎么了?”我有些...
    開封第一講書人閱讀 158,143評論 0 348
  • 文/不壞的土叔 我叫張陵譬圣,是天一觀的道長瓮恭。 經(jīng)常有香客問我,道長厘熟,這世上最難降的妖魔是什么屯蹦? 我笑而不...
    開封第一講書人閱讀 56,732評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮绳姨,結果婚禮上登澜,老公的妹妹穿的比我還像新娘。我一直安慰自己就缆,他們只是感情好帖渠,可當我...
    茶點故事閱讀 65,837評論 6 386
  • 文/花漫 我一把揭開白布谒亦。 她就那樣靜靜地躺著竭宰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪份招。 梳的紋絲不亂的頭發(fā)上切揭,一...
    開封第一講書人閱讀 50,036評論 1 291
  • 那天,我揣著相機與錄音锁摔,去河邊找鬼廓旬。 笑死,一個胖子當著我的面吹牛谐腰,可吹牛的內(nèi)容都是我干的孕豹。 我是一名探鬼主播,決...
    沈念sama閱讀 39,126評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼十气,長吁一口氣:“原來是場噩夢啊……” “哼励背!你這毒婦竟也來了?” 一聲冷哼從身側響起砸西,我...
    開封第一講書人閱讀 37,868評論 0 268
  • 序言:老撾萬榮一對情侶失蹤叶眉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后芹枷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衅疙,經(jīng)...
    沈念sama閱讀 44,315評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,641評論 2 327
  • 正文 我和宋清朗相戀三年鸳慈,在試婚紗的時候發(fā)現(xiàn)自己被綠了饱溢。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,773評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡走芋,死狀恐怖绩郎,靈堂內(nèi)的尸體忽然破棺而出絮识,到底是詐尸還是另有隱情,我是刑警寧澤嗽上,帶...
    沈念sama閱讀 34,470評論 4 333
  • 正文 年R本政府宣布次舌,位于F島的核電站,受9級特大地震影響兽愤,放射性物質(zhì)發(fā)生泄漏彼念。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,126評論 3 317
  • 文/蒙蒙 一浅萧、第九天 我趴在偏房一處隱蔽的房頂上張望逐沙。 院中可真熱鬧,春花似錦洼畅、人聲如沸吩案。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,859評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徘郭。三九已至,卻和暖如春丧肴,著一層夾襖步出監(jiān)牢的瞬間残揉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評論 1 267
  • 我被黑心中介騙來泰國打工芋浮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抱环,地道東北人。 一個月前我還...
    沈念sama閱讀 46,584評論 2 362
  • 正文 我出身青樓纸巷,卻偏偏與公主長得像镇草,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瘤旨,可洞房花燭夜當晚...
    茶點故事閱讀 43,676評論 2 351

推薦閱讀更多精彩內(nèi)容