WindowManagerService怎么获取默认的DisplayMetrics
时间: 2023-07-24 12:44:56 浏览: 150
深入理解WindowManagerService笔记
WindowManagerService是Android系统中的一个服务,负责管理窗口和显示相关的任务。它提供了getDisplayMetrics()方法来获取默认的DisplayMetrics,具体实现如下:
首先,WindowManagerService会获取当前显示设备的物理尺寸和像素尺寸。它会通过调用DisplayManager的getDisplay()方法来获取当前默认的Display对象,然后通过Display对象的getRealMetrics()方法获取到物理尺寸和像素尺寸。这里的物理尺寸指的是显示设备的物理尺寸,例如屏幕的物理尺寸;像素尺寸指的是显示设备的像素尺寸,例如屏幕的像素尺寸。
接着,WindowManagerService会计算出当前默认的DisplayMetrics对象的各个参数值。特别是,它会将物理尺寸和像素尺寸之间的转换因子计算出来,然后将这个因子赋值给DisplayMetrics对象的density字段。同时,它还会根据当前设备的屏幕方向来调整DisplayMetrics对象的widthPixels和heightPixels字段。
最后,WindowManagerService会将计算出来的DisplayMetrics对象返回给调用方,例如应用程序中的Context对象。
总的来说,WindowManagerService获取默认的DisplayMetrics是通过DisplayManager和Display对象来实现的。它会获取当前显示设备的物理尺寸和像素尺寸,然后计算出DisplayMetrics对象的各个参数值,并返回给调用方。
阅读全文