先看幾個函式:提到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...