需求
分析
- 布局分为横竖屏
- 涉及到视频窗口的大小、位置切换
通过观察需求原型图可得知,横竖屏切换可以简单分成7块区域
- 4个视频窗口
- 1个title,显示「XX号房间」
- 1个ViewGroup,放置「头像,头像,头像,N个观众」
- 另1个ViewGroup,放置聊天窗口相关
横竖屏切一开始我的思路是完全不使用系统的横竖屏切换,使用rotation来切换横竖屏,切换过程添加一个转换动画,如下图所示:
(请无视中间那个小眼睛)
但因为横屏之后依然有聊天功能,不调用系统的旋转,输入法依然还是竖屏的形式弹出来的。暂时没有查到解决办法。无奈改为使用系统的横竖屏切换,切换时通知ViewGroup重新计算测量、布局子View。
实现
首先我们复写onMeasure
方法