时间:2024-11-18 19:01:16
Android强制系统横屏的原理和实现
1. 截屏保存屏幕状态 (WindowManagerService.screenRotationAnimation())
2. 用第一步的截屏生成一个非常高层级的,完全不透明的Layer,让用户在视觉上一直停留在竖屏状态,由于是完全不透明,所以在它下方的所有内容完全不可见,那么就尽情地绘制吧(WindowManagerService .updateRotationUncheckedLocked())
3. 方向改变前哪些窗口可见,就必须等待那些窗口绘制完成,这个很好理解
4. 截屏Layer为整体,施加旋转并淡出的动画,重绘的所有横屏界面为另一个整体,也施加一个旋转动画,这样当动画结束时看到的就是重绘后的横屏界面。还有一点需要注意,转屏过程中系统会禁用所有其它动画,避免动画的叠加。
科技之家 广州小漏斗信息技术有限公司 版权所有 提供支持 粤ICP备20006251号