SurfaceView在宿主窗口“挖洞”过程要点

论坛 期权论坛 脚本     
匿名技术用户   2020-12-23 12:13   11   0

SurfaceView在宿主窗口“挖洞”过程要点

Created with Raphal 2.1.0SurfaceViewSurfaceViewViewGroupViewGroupViewRootImplViewRootImpl1.onAttachedToWindow2.requestTransparentRegion3.requestTransparentRegion4.performTraversals5.gatherTransparentRegion6.gatherTransparentRegion

第1步,SurfaceView将通过IWindow接口与WindowManagerService关联,WindowManagerService服务将认为Activity窗口和SurfaceView的地位是一样的,即认为它们各自拥有独立窗口,并且具有绘图表面surface;
第5步,ViewGroup的gatherTransparentRegion方法遍历包括SurfaceView在内的所有子View的gatherTransparentRegion以得到最后的透明区域TransparentRegion,如果其他类型子View覆盖SurfaceView,其gatherTransparentRegion方法将减去相应透明区域。同理,在绘制的过程中,ViewGroup的dispatchDraw也将遍历所有子View的draw,覆盖SurfaceView的子View也将绘制在SurfaceView之上。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP