getWindowManager()返回的屏幕区域是什么.getDefaultDisplay()?

时间:2013-03-21 22:42:32

标签: android android-layout

我正在尝试以编程方式获取应用的可用屏幕区域。 为此,我使用getWindowManager().getDefaultDisplay().getSize()。但是我不太确定与“默认显示窗口”相对应的屏幕区域是什么。

除导航栏外,它似乎包含整个屏幕(包括通知栏)。它是否正确 ?有例外吗?

2 个答案:

答案 0 :(得分:2)

来自文档:

  

获取显示的大小(以像素为单位)。

     

请注意,此值不应用于计算布局,因为a   设备通常会有屏幕装饰(如状态栏)   沿着显示器的边缘,减少了应用程序的数量   从这里返回的尺寸可用的空间。布局应该改为   使用窗口大小。

     

根据显示器的当前旋转调整尺寸。

     

此方法返回的大小不一定代表   显示的实际原始大小(原始分辨率)。返回的大小   可以调整以排除某些系统装饰元素   始终可见。它也可以缩放以提供兼容性   较旧的应用程序,最初设计用于较小的显示器。

强调我的。所以,是的,他们可能会从中排除导航栏,但不一定。

答案 1 :(得分:0)

是的,它包括您的应用程序可用的所有空间(即,不计算操作系统级别组件,如状态和通知栏)。

但是,大小确实会根据是否使用隐藏通知和状态栏的setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);等方法进行更改,并为您的应用程序提供更多空间。