Android是支持屏幕进行旋转的,通过旋转使得屏幕呈现出竖屏或者横屏的布局。有时我们在使用的时候会发现,旋转时会有动画。这是因为,为了使用户在使用转屏旋转过程中提升体验,系统会对屏幕截屏,使用截屏获取的图片进行旋转动画,指导完成旋转,我们所看到的旋转动画其实是,旋转开始时系统所截屏幕所做的动画。
手机是否支持转屏可以在Setting设定,对于Setting中有关是否自动转屏,PhoneWindowManager中的init()函数中创建了SettingsObserver对象,其observe()方法将监听Settings.System.USER_ROTATION的值。如果设置中打开auto-rotation,会触发如下流程。
上图可能较小无法看清,大图请查看文档最后的附图。
下面对该流程中涉及到的代码进行分析: