Android 觸控事件 在自定義控制項中常用

2021-07-06 02:02:44 字數 837 閱讀 3713

一、

dispatchtouchevent()、onintercepttouchevent()和ontouchevent()

dispatchtouchevent

是處理觸控事件分發,事件(多數情況)是從activity的dispatchtouchevent開始的

。執行super.dispatchtouchevent(ev),事件向下分發。

onintercepttouchevent是viewgroup提供的方法,預設返回false,返回true表示攔截。

ontouchevent是view中提供的方法,viewgroup也有這個方法,view中不提供onintercepttouchevent。view中預設返回true,表示消費了這個事件。

觸控事件從activiy開始 由onintercepttouchevent來判斷是都在此終結觸控事件

二、motionevent ev

單手指操作:action_down---action_move----action_up---action_outside

ev.getaction() 獲取觸控的型別

ev.getx() ev.gety() 觸控在螢幕上的位置 相對於自身的位置座標 就是從action_down開始的操作

ev.getrawx() ev.getrawy() 觸控在螢幕上的位置 相對於螢幕的位置座標

getx()是表示view相對於自身左上角的x座標,而getrawx()是表示相對於螢幕左上角的x座標值(注意:這個螢幕左上角是手機螢幕左上角,不管activity是否有titlebar或是否全螢幕)

Android自定義長按事件

android系統自帶了長按事件,setonlongclicklistener即可監聽。但是有時候,你不希望用系統的長按事件,比如當希望長按的時間更長一點的時候。這時候就需要自己來定義這個長按事件了。packagechroya.fun importandroid.content.context im...

android 自定義廣播事件

上一節的簡訊攔截在4.0 以上系統中無效,可以使用這種辦法實現,定義乙個 activity 清單檔案中指定主題為透明,在 oncreate 方法裡面直接呼叫 finsh 方法,關掉,這樣可以就可以實現了 應用場景 比如車載電腦,裡面有很多應用,有些應用需要發射訊號給某乙個廣播接收者 新建乙個廣播接收...

在Python tkinter中自定義事件

在手機和計算機上,都有乙個鬧鐘和時鐘程式,包括秒錶 計時器 鬧鐘和時鐘4個功能。它們每1秒都要改變顯示的時間。可在另一線程建立秒計時器,每隔1秒發乙個事件,使秒錶 計時器 鬧鐘和時鐘改變時間。如用python tkinter編寫這個程式,必須自定義事件,並把自定義事件繫結到自定義事件函式,這裡介紹實...