手勢觸控事件

2021-08-31 22:20:22 字數 1187 閱讀 5869

根據部落格:[url]修改.

閒來無事,琢磨琢磨android中的手勢互動,發現網上在手勢方面的文章並不是很多,而且很多的參考價值並不大。於是出此博文,與大家共勉。鑑於我寫此博文時對手勢互動的研究也不是特深,如果有不正確的地方,還請各位博友批評指正。

首先,在android系統中,每一次手勢互動都會依照以下順序執行。

1. 接觸接觸屏一剎那,觸發乙個motionevent事件。

2. 該事件被ontouchlistener監聽,在其ontouch()方法裡獲得該motionevent物件。

3. 通過gesturedetector(手勢識別器)**次motionevent物件至ongesturelistener。

4. ongesturelistener獲得該物件,聽根據該物件封裝的的資訊,做出合適的反饋。

這個順序可以說就是手勢互動的原理,下面一同來了解一下motionevent、gesturedetector和ongesturelistener。

[b]motionevent[/b]: 這個類用於封裝手勢、觸控筆、軌跡球等等的動作事件。其內部封裝了兩個重要的屬性x和y,這兩個屬性分別用於記錄橫軸和縱軸的座標。

[b]gesturedetector[/b]: 識別各種手勢。

[b]ongesturelistener[/b]: 這是乙個手勢互動的監聽介面,其中提供了多個抽象方法,並根據gesturedetector的手勢識別結果呼叫相對應的方法。

按下(ondown): 剛剛手指接觸到觸控螢幕的那一剎那,就是觸的那一下。

拋擲(onfling): 手指在觸控螢幕上迅速移動,並鬆開的動作。

長按(onlongpress): 手指按在持續一段時間,並且沒有鬆開。

滾動(onscroll): 手指在觸控螢幕上滑動。

按住(onshowpress): 手指按在觸控螢幕上,它的時間範圍在按下起效,在長按之前。

抬起(onsingletapup):手指離開觸控螢幕的那一剎那。

任何手勢動作都會先執行一次按下(ondown)動作。

長按(onlongpress)動作前一定會執行一次按住(onshowpress)動作。

按住(onshowpress)動作和按下(ondown)動作之後都會執行一次抬起(onsingletapup)動作。

長按(onlongpress)、滾動(onscroll)和拋擲(onfling)動作之後都不會執行抬起(onsingletapup)動作。

JS 觸控事件 手勢事件

隨著觸屏移動端裝置的普及使用,w3c開始制定touchevent規範。除了常用的dom屬性,觸控事件還包含下列三個用於跟蹤觸控的屬性。觸控事件與手勢事件之間的關係 1 當乙個手指放在螢幕上時,會觸發touchstart事件,如果另乙個手指又放在了螢幕上,則會觸發gesturestart事件,隨後觸發...

觸控和手勢事件

一 觸控事件 touchstart 當手指觸控螢幕時觸發 即使已經有乙個手指放在了螢幕上也會觸發 touchmove 當手指在螢幕上滑動時連續的觸發。touchend 當手指在螢幕上移開時觸發。二 手勢事件 gesturestart 當乙個手指已經按在螢幕上而另乙個手指又觸控螢幕時觸發 gestur...

JavaScript觸控與手勢事件

ios版safari為了向開發人員傳達一些特殊資訊,新增了一些專有事件。因為ios裝置既沒有滑鼠也沒有鍵盤,所以在為移動safari開發互動網頁時,常規的滑鼠和鍵盤事件根本不夠用。隨著android中的webkit的加入,很多這樣的專有事件變成了事實標準。包含ios2.0軟體的iphone 3g發布...