android framework 觸控螢幕事件傳遞

2021-07-11 08:15:36 字數 1106 閱讀 4829

對於像我這樣剛入門的android程式設計師,如果想大致弄清楚觸控螢幕事件傳到使用者介面的過程,我覺得需要弄清楚以下幾個部分:

一 activity, window,view之間的關係

二  window,windowmanager,windowmanagerserver的建立和訊息傳遞的基本規則

三 本地類 inputreader , inputdispatcher 的建立,對觸控螢幕事件的讀取和派發

四 觸控螢幕事件從inputdispatcher怎麼傳遞到window

五 觸控螢幕事件在viewgroup/view中的傳遞

首先,把各種涉及到的重要的介面名/類名列出來,混個臉熟。

activity

window

phonewindow

decorview

viewroot ( android4.0 中為 viewrootimpl )

windowmanager

windowmanagerimpl

localwindowmanager

windowmanagerserver

inputmanager

inputreader

inputdispatcher

接下來,一起看看各個部分。

activity , 只要寫過android程式的人都知道,android的四大金剛之一。activity是應用程式的載體。它並不參與介面的顯示,介面的顯示都交給window來管理。

phonewindow是從window派生來的,window是乙個抽象類。每個activity中有且只有乙個phonewindow。(至於phonewindow的作用,這裡我暫時還無法很準確地歸納,希望有牛人賜教)

decorview,decorview是乙個擴充套件的framelayout的類,是視窗中所有view的根view。

viewroot, 每個window都會對應乙個viewroot物件。viewroot從handle派生過來,處理各種其它模組傳送的事件。比如觸控螢幕事件就是從其它模組傳送到viewroot後,由viewroot的handlemessage()方法處理的。

(未完待續,本人初學,如果有問題,敬請指出,一起討論)

觸控螢幕開發 觸控螢幕甩屏互動系統

這是南京酷牛科技最新開發的一款上下屏聯動觸控螢幕軟體。比較獨特的是,玩家可以通過控制乙個下屏,與上屏五個顯示屏進行展示的互動。軟體組成 軟體特點 1 一台大的顯示器 支援led屏,投影儀,拼接屏 可以和多個觸控螢幕組成區域網實現觸屏資料飛至大屏,不限制觸控螢幕的個數。如果只有1個觸控螢幕也可以用擴充...

手機觸控螢幕的JS事件

處理touch事件能讓你跟蹤使用者的每一根手指的位置。你可以繫結以下四種touch事件 一 touchstart 手指放到螢幕上的時候觸發 touchmove 手指在螢幕上移動的時候觸發 touchend 手指從螢幕上拿起的時候觸發 touchcancel 系統取消touch事件的時候觸發。至於系統...

手機觸控螢幕的JS事件

處理touch事件能讓你跟蹤使用者的每一根手指的位置。你可以繫結以下四種touch事件 touchstart 手指放到螢幕上的時候觸發 touchmove 手指在螢幕上移動的時候觸發 touchend 手指從螢幕上拿起的時候觸發 touchcancel 系統取消touch事件的時候觸發。至於系統什麼...