Android横竖屏切换

来源:互联网 发布:淘宝哪家沉香好 编辑:程序博客网 时间:2024/04/28 18:46

  屏幕方向的变换是由Sensor决定的。当Sensor变化时,会调用到

  frameworks/base/core/java/android/view/WindowOrientationListener.java文件中的onSensorChanged()函数,此函数又会调用calculateNewRotation()函数。calculateNewRotation会根据orientation,tiltAngle, mRotation三个变量去做相应判断,如果条件符合,最后会调用onOrientationChanged()函数。

  对比转屏正常和较慢的设备发现(同一种设备和同一版本的代码),正常的设备 calculateNewRotation()会被调用几次,然后条件符合,就会调用onOrientationChange()函数,较慢的设备 calculateNewRotation()的调用次数几乎是正常设备的两倍,条件符合,才会调用onOrientationChange()函数去实现转屏。