1:DecorView的高度
DecorView的高度代表的是: 整个装饰窗口的高度, 这个高度包括:状态烂的高度和导航栏的高度.(状态栏和导航栏通常叫做装饰窗口, 而ActionBar不属于装饰窗口)

这个高度, 可以代表着整个玻璃屏幕的高度.


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

这个View对应的高度, 可以表示当前应用程序的有效高度.
在没有任何修饰的情况下, 应用程序的高度是去掉状态栏和导航栏后的高度;

也就是 (DecorView的高度)-(状态栏的高度)-(导航栏的高度);

但是,如果你使用:
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的高度+状态栏的高度)-(heightPixels) > 0 说明 显示了导航栏


附加1 获取状态栏的高度
正常情况下: (heightPixels) - (RootView的高度) = 状态栏的高度
但是如果你设置了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”));

Android-->状态栏高度,导航栏高度,Window高度,DecorView高度,heightPixels的更多相关文章

  1. iOS获取状态栏和导航栏尺寸(宽度和高度)

    iPhone开发当中,有时需要获取状态栏和导航栏高度.宽度信息,方便布局其他控件.下面介绍一下如何获取这些信息: // 状态栏(statusbar) CGRect rectStatus = [[UIA ...

  2. iOS - 获取状态栏和导航栏尺寸(宽度和高度)

    iPhone开发当中,有时需要获取状态栏和导航栏高度.宽度信息,方便布局其他控件.下面介绍一下如何获取这些信息: // 状态栏(statusbar) CGRect rectStatus = [[UIA ...

  3. 【转】iPhone获取状态栏和导航栏尺寸(宽度和高度)

    原文网址:http://blog.csdn.net/chadeltu/article/details/42708605 iPhone开发当中,有时需要获取状态栏和导航栏高度.宽度信息,方便布局其他控件 ...

  4. Android状态栏和导航栏

    1.隐藏状态栏或导航栏 View decordView = getWindow().getDecorView(); /*SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI ...

  5. iphone状态栏,导航栏,标签栏高度一览表

    iphone状态栏,导航栏,标签栏高度一览表   设备分辨率 状态栏高度 导航栏高度 标签栏高度 iPhone6 plus  1242×2208 px 60px  132px  147px iPhon ...

  6. android 自己定义状态栏和导航栏分析与实现

    效果 android 4.4之后,系统是支持自己定义状态栏和导航栏的.举个最典型的样例就是bilibiliclient了(iOS版本号和android版本号能用两套全然不一样符合各自系统的设计ui,良 ...

  7. 兼容 Android 4.4 透明状态栏与导航栏

    http://www.apkbus.com/Android-163388-1-1.html?_dsign=73d41229 android 系统自4.2 开始 UI 上就没多大改变,4.4 也只是增加 ...

  8. Android隐藏状态栏、导航栏

    Android隐藏状态栏.导航栏 private void hideStatusNavigationBar(){ if(Build.VERSION.SDK_INT<16){ this.getWi ...

  9. Android 4.4 沉浸式透明状态栏与导航栏

    Android 系统自4.2 開始 UI 上就没多大改变,4.4 也仅仅是添加了透明状态栏与导航栏的功能,如图 那么如今我就来给大家解说下怎样使用这个新特性,让你的 app 尾随潮流,当然假设你不在乎 ...

随机推荐

  1. edge浏览器识别ip地址为手机号的解决办法

    edge浏览器识别ip地址为手机号的解决办法 今天突然发现类似101.231.70.242的ip地址会在edge浏览器里面识别为可点击的链接,后来看了一下,原因就是被识别为手机号了,因为我发现点击的时 ...

  2. spoj104 HIGH - Highways 矩阵树定理

    欲学矩阵树定理必先自宫学习一些行列式的姿势 然后做一道例题 #include <iostream> #include <cstring> #include <cstdio ...

  3. 12章 应用spary制作高级网页组件

    比较复杂的用户界面,tab面板  伸缩面板和折叠面板等组件.   tab面板和菜单实际上分为两种           一种是切换各个tab页中的内容时并不刷新浏览器窗口,仅仅是被隐藏起来了  利用ja ...

  4. Linux Shell系列教程之(一)Shell简介

    本文是Linux Shell系列教程的第(一)篇,更多shell教程请看:Linux Shell系列教程 想要学习linux,shell知识必不可少,今天就给大家来简单介绍下shell的基本知识. S ...

  5. 【Luogu】P3786萃香抱西瓜(状压DP)

    题目链接 水题,数据范围提示得太明显了吧,不用动脑子都能知道是状压. 不过还是有坑(当然更可能是我脑子有坑) f[i][j][k][l]表示当前是第i秒,萃香在(j,k),已经抱到的西瓜状态是l的最少 ...

  6. 刷题总结——doing homework again(hdu1789)

    题目: Problem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot ...

  7. java面试题之BIO、NIO、AIO的应用场景

    定义: 1.BIO:同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时,服务器就启动一个线程来处理,如果这个连接不处理任何事情会造成不必要的线程开销,可以通过线程池机制改善. 2.NI ...

  8. spring执行事务提交后进行一些逻辑操作

    在使用spring事务时,我们通常会把事务内的所有操作当成是一个原子操作.也就是当整个事务内的所有代码都执行完成后, 才会将所有的数据落实到数据库中.这样做有时也会给我们造成麻烦.比如以下场景: 根据 ...

  9. 如何在requirejs下引用bootstrap

    原本以为只要require过来就能用 require(['jquery','underscore','bootstrap','cache'],function($,U,B,C){ 但发现会报错,类似未 ...

  10. 转 PV操作简单理解

    传送门 PV操作简单理解 进程通常分为就绪.运行和阻塞三个工作状态.三种状态在某些条件下可以转换,三者之间的转换关系如下: 进程三个状态之间的转换就是靠PV操作来控制的.PV操作主要就是P操作.V操作 ...