OnTouchEvent()方法
是獲取的對屏幕的各種操作,比如向左向右滑動,點擊返回按鈕等等。
屬於一個宏觀的屏幕觸摸監控。
OnTouchListener()方法
是獲取某一個控件某一個View的點擊監控。
官方文檔:http://developer.android.com/ref ... nTouchListener.html
兩者很容易區分。
區別如下:
1、如果setOnTouchListener中的onTouch方法返回值是true(事件被消費)時,則onTouchEvent方法將不會被執行;
2、只有當setOnTouchListener中的onTouch方法返回值是false(事件未被消費,向下傳遞)時,onTouchEvent方法才被執行。
3、以上說的情況適用於View對象(事件會最先被最內層的View對象先響應)而不是ViewGroup對象(事件會最先被最外層的View對象先響應)。
綜合來講:
onTouchListener的onTouch方法優先級比onTouchEvent高,會先觸發。
假如onTouch方法返回false,會接着觸發onTouchEvent,反之onTouchEvent方法不會被調用。
內置諸如click事件的實現等等都基於onTouchEvent,假如onTouch返回true,這些事件將不會被觸發。