現(xiàn)在的手機(jī)屏幕較大,使用觸屏的全面屏導(dǎo)航有時(shí)因?yàn)槭种笁虿恢骨铮僮魃杂胁槐恪M瑫r(shí)大部分手機(jī)都內(nèi)置有三軸陀螺儀摘刑,利用陀螺儀可以準(zhǔn)確的判斷手機(jī)的微小運(yùn)動,尤其是轉(zhuǎn)動枷恕,于是誕生了這個App 微動手勢。
陀螺儀原理
先看下陀螺儀的基本原理未玻,大部分手機(jī)里都有三個基本的傳感器:
- 加速度傳感器相當(dāng)于一個重錘在中間的彈簧系統(tǒng),四面八方有彈簧支撐扳剿。方位變化時(shí),不同的彈簧受到不同的壓縮庇绽,有的被拉長,有的被壓扁瞧掺,從而偵測出不同方向的力凡傅,它的典型應(yīng)用比如手機(jī)水平和垂直畫面的切換。
- 電子羅盤主要偵測地磁像捶,主要基于霍爾效應(yīng),可以測量絕對方位拓春,主要應(yīng)用是指南針。
- 陀螺儀偵測的則是角速度硼莽,基于科里奧利力的原理煮纵,可以精確測量角速度偏螺,并且不受線性加速度和磁場的干擾。
我們看下三軸陀螺儀的基本設(shè)定:
上圖是三個轉(zhuǎn)動軸的定義酿联,XYZ分別對應(yīng)手機(jī)的短邊、長邊贞让、垂直屏幕的邊,當(dāng)手機(jī)轉(zhuǎn)動喳张,陀螺儀會給出分解到這三個軸的角速度,通過算法對采集到的角速度進(jìn)行過濾销部,轉(zhuǎn)換為響應(yīng)的手勢,就可以用于安卓導(dǎo)航了舅桩,因?yàn)橥勇輧x已經(jīng)將三個軸的轉(zhuǎn)動速度分解出來,所以可以識別出分別僅沿一個軸的單獨(dú)轉(zhuǎn)動江咳,這樣就可以得到三種手勢,可以定義成三種不同的動作歼指,看下圖:
分別沿三個軸的轉(zhuǎn)動動作甥雕,可以描述如下:
- 沿X軸轉(zhuǎn)動,將手機(jī)上邊或下邊轉(zhuǎn)向操作者社露。
- 沿Y軸轉(zhuǎn)動,將手機(jī)左邊或右邊轉(zhuǎn)向操作者峭弟,類似將手機(jī)翻一個面的動作,當(dāng)然在做手勢識別導(dǎo)航時(shí)瞒瘸,微小轉(zhuǎn)動即可。
- 沿Z軸轉(zhuǎn)動省撑,就是將手機(jī)面向操作者平轉(zhuǎn)赌蔑,類似微信搖一搖的動作竟秫。
微動手勢App
微動手勢App啟動以后,需要打開識別開關(guān)肥败,第一次打開開關(guān)會跳轉(zhuǎn)到系統(tǒng)設(shè)置里,因?yàn)闄?quán)限的原因潮孽,必須要用戶在系統(tǒng)設(shè)置里手動開啟。
微動手勢App可以自定義三種手勢,缺省沿XYZ的三種轉(zhuǎn)動手勢仗颈,分別對應(yīng)下拉通知,返回和多任務(wù)挨决,下圖是定義三種手勢的設(shè)置頁面。
除了定義手勢肆捕,還可以控制震動反饋和調(diào)節(jié)手勢靈敏度,考慮到某些場景慎陵,可能需要臨時(shí)開關(guān)手勢,也支持了安卓7上的通知欄開關(guān)席纽,更為便捷的打開或關(guān)閉手勢識別,見下圖:
總之润梯,微動手勢作為一個創(chuàng)新導(dǎo)航App甥厦,可以作為現(xiàn)有安卓全面屏手勢的一個有益補(bǔ)充,后續(xù)作者也承諾會增加更多一些功能刀疙,可以去App頁面下反饋不同的意見。