什么是Android DecorView?

时间:2014-04-24 18:22:44

标签: android window android-view

http://developer.android.com/reference/android/view/Window.html#getDecorView()

  

检索顶级窗口装饰视图(包含标准窗口)       框架/装饰和其中的客户端内容,可以添加为       窗口管理器的窗口。

这令人费解。目前尚不清楚标准的窗框/装饰品是什么"是。我完全不知道这是什么,文档很糟糕。它是否存在于应用程序窗口内?它是否围绕着应用程序的窗口?

我从未见过具有明显窗口装饰的Android窗口。并且"可以添加为窗口"意味着装饰视图是一个窗口,但这与类层次结构相矛盾(View不是Window的子类)。

那么这笔交易是什么?装饰视图究竟是什么?

2 个答案:

答案 0 :(得分:38)

似乎最好定义的地方之一是Romain Guy's Blog

  

DecorView是实际保持窗口背景可绘制的视图。从Activity调用getWindow()。setBackgroundDrawable()会通过更改DecorView的背景drawable来更改窗口的背景。如前所述,此设置非常特定于Android的当前实现,并且可能在将来的版本中更改,甚至可能在其他设备上更改。

答案 1 :(得分:0)

装饰视图似乎包含屏幕分辨率?我得到1920。

var verticalScreenRes = act.window.decorView.height.toFloat() // 1920

然后验证

adb -s emulator-5554 shell wm size
Physical size: 1080x1920