现在的手机屏幕较大,使用触屏的全面屏导航有时因为手指够不着,操作稍有不便。同时大部分手机都内置有三轴陀螺仪,利用陀螺仪可以准确的判断手机的微小运动,尤其是转动,于是诞生了这个App 微动手势。
陀螺仪原理
先看下陀螺仪的基本原理,大部分手机里都有三个基本的传感器:
- 加速度传感器相当于一个重锤在中间的弹簧系统,四面八方有弹簧支撑。方位变化时,不同的弹簧受到不同的压缩,有的被拉长,有的被压扁,从而侦测出不同方向的力,它的典型应用比如手机水平和垂直画面的切换。
- 电子罗盘主要侦测地磁,主要基于霍尔效应,可以测量绝对方位,主要应用是指南针。
- 陀螺仪侦测的则是角速度,基于科里奥利力的原理,可以精确测量角速度,并且不受线性加速度和磁场的干扰。
我们看下三轴陀螺仪的基本设定:
上图是三个转动轴的定义,XYZ分别对应手机的短边、长边、垂直屏幕的边,当手机转动,陀螺仪会给出分解到这三个轴的角速度,通过算法对采集到的角速度进行过滤,转换为响应的手势,就可以用于安卓导航了,因为陀螺仪已经将三个轴的转动速度分解出来,所以可以识别出分别仅沿一个轴的单独转动,这样就可以得到三种手势,可以定义成三种不同的动作,看下图:
分别沿三个轴的转动动作,可以描述如下:
- 沿X轴转动,将手机上边或下边转向操作者。
- 沿Y轴转动,将手机左边或右边转向操作者,类似将手机翻一个面的动作,当然在做手势识别导航时,微小转动即可。
- 沿Z轴转动,就是将手机面向操作者平转,类似微信摇一摇的动作。
微动手势App
微动手势App启动以后,需要打开识别开关,第一次打开开关会跳转到系统设置里,因为权限的原因,必须要用户在系统设置里手动开启。
微动手势App可以自定义三种手势,缺省沿XYZ的三种转动手势,分别对应下拉通知,返回和多任务,下图是定义三种手势的设置页面。
除了定义手势,还可以控制震动反馈和调节手势灵敏度,考虑到某些场景,可能需要临时开关手势,也支持了安卓7上的通知栏开关,更为便捷的打开或关闭手势识别,见下图:
总之,微动手势作为一个创新导航App,可以作为现有安卓全面屏手势的一个有益补充,后续作者也承诺会增加更多一些功能,可以去App页面下反馈不同的意见。