Android系统自动转屏流程(一)

Android系统在屏幕旋转时会提供动画以提升用户体验。旋转流程由SettingsObserver监听Settings.System.USER_ROTATION,当开启自动旋转时,涉及AccessibilitySettings、RotationPolicy、PhoneWindowManager等组件。在设置自动旋转时,会调用相关方法执行 freezeRotation() 或 thawRotation(),后者触发屏幕转屏流程。在PhoneWindowManager中,监听变化并更新设置,通过传感器数据判断是否需要转屏并更新configuration。
摘要由CSDN通过智能技术生成

Android是支持屏幕进行旋转的,通过旋转使得屏幕呈现出竖屏或者横屏的布局。有时我们在使用的时候会发现,旋转时会有动画。这是因为,为了使用户在使用转屏旋转过程中提升体验,系统会对屏幕截屏,使用截屏获取的图片进行旋转动画,指导完成旋转,我们所看到的旋转动画其实是,旋转开始时系统所截屏幕所做的动画。

手机是否支持转屏可以在Setting设定,对于Setting中有关是否自动转屏,PhoneWindowManager中的init()函数中创建了SettingsObserver对象,其observe()方法将监听Settings.System.USER_ROTATION的值。如果设置中打开auto-rotation,会触发如下流程。

 

上图可能较小无法看清,大图请查看文档最后的附图。

下面对该流程中涉及到的代码进行分析:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值