總體把握Android中的觸控事件處理

2021-07-02 16:05:16 字數 1282 閱讀 5037

先看幾個函式:提到android的觸控事件處理,不少人都會立刻想到某些令人頭疼的函式,這裡列舉一下,刺激一下你的小神經:

@override

public

boolean

ontouchevent(motionevent event)

@override

public

boolean

dispatchtouchevent(motionevent ev)

@override

public

boolean

onintercepttouchevent(motionevent ev)

@override

public

boolean

ontouch(view v, motionevent event)

恩,今天我們來看一下這四個函式的作用以及之間的呼叫關係,從而理清觸控事件處理機制。

一. 我們先來搞定其中的兩個:

@override

public

boolean

ontouchevent(motionevent event)

@override

public

boolean

onintercepttouchevent(motionevent ev)

1.1 首先明確一點,android的事件分發和處理是自上而下的,即乙個觸控事件第一次肯定是發給最外層的view的。

1.2 這裡我們舉個例子:我們假設乙個視窗的多個viewgroup組成了乙個大家庭,其中最外層的view輩分最長,最裡層的view輩分最小,然後把乙個觸控事件event比喻成乙個蘋果。那麼,如果發生了乙個事件(獲得了乙個蘋果),將會發生如下的事情:

蘋果的傳遞過程:

爺爺——>爸爸——>孫子。

那如果爺爺這一輩把蘋果吃掉了呢,這時我們稱這個事件被消費。

看下圖:

再細緻地去分析:

至此,是不是對android中的訊息傳遞機制有了乙個整體上的把握呢,

下面我們再去弄清一些細節。

android中多點觸控開發紀要

筆者在專案開發中,碰到過針對螢幕的五指觸控測試需求,實現方式為可以自定義個view,然後在ontouchevent 方法中對motionevent進行處理,核心 如下,要注意的地方在注釋中已做說明。override public boolean ontouchevent motionevent ev...

Android開發中實現多點觸控的方法

多點觸控技術在實際開發過程中,用的最多的就是放大縮小功能。比如有一些瀏覽器,就可以用多個手指在螢幕上操作,對進行放大或者縮小。再比如一些瀏覽器,也可以通過多點觸控放大或者縮小字型。其實放大縮小也只是多點觸控的實際應用樣例之一,有了多點觸控技術,在一定程度上就可以創新出更多的操作方式來,實現更酷的人機...

關於android 的觸控事件

android 觸控motionevent 事件 motionevent 事件物件 一般情況下是在view 的ontouchevent 方法中處理motionevent 事件物件的 1 首先需要獲事件的型別 可以通過getaction android2.2之後加入多點觸控支援後 使用getactio...