Android SensorManager传感器应用: 横竖屏方向自动切换 和 抖动恢复屏幕方向

本文介绍了如何使用Android SensorManager解决横竖屏切换问题,特别是当用户手动切换屏幕方向后,通过检测设备晃动45°内自动切换屏幕方向,以实现类似iPad的屏幕回正效果。详细实现包括OrientationEventListener和SensorEventListener的使用,并提供了源码地址。
摘要由CSDN通过智能技术生成

之前写了一个简单的视频播放器:
https://blog.csdn.net/intbird/article/details/105970536
里面考虑了一个屏幕方向的问题, 现在来简单实现一下

1. 问题来源

  1. 如果始终进行横竖屏切换, 不用其他条件(比如屏幕方向跟随人脸模式):
    下面代码的 OrientationEventListener onOrientationChanged
    判断屏幕角度 再进行 屏幕方向旋转 即可实现
  2. 但: 如果手机在竖屏状态下, 人为手动操作切换为横屏(比如播放视频):
    此时可以明显看到屏幕旋转路径如下:
    竖屏(原始) > 横屏(手动) -> 竖屏(自动检测后进行了恢复)
    问题: 这样就导致手动切换后的屏幕方向无效(等于是多此一举)
    所以: 自动旋转屏幕需要 一些开启和关闭开关 (我看ipad是抖动一下方向回正)
  3. 手机传感器有些许差别,后续还要进行一些调整(传感器类型)
    这里简单的用屏幕晃动 45° 内即进行方向切换

2. 实现效果

矿泉水瓶为直立参照物
1

3. 示例说明

官方文档:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值