1.onTouch方法:
onTouch方法是View的 OnTouchListener接口中定義的方法。
當(dāng)一個View綁定了OnTouchLister后譬涡,當(dāng)有touch事件觸發(fā)時茁计,就會調(diào)用onTouch方法料皇。(當(dāng)把手放到View上后,onTouch方法被一遍一遍地被調(diào)用)星压,這個方法有返回值 false 和true
2.onTouchEvent方法:
onTouchEvent方法是override 的Activity的方法践剂。
覆寫了Activity的onTouchEvent方法后,當(dāng)屏幕有touch事件時娜膘,此方法就會別調(diào)用逊脯。
(當(dāng)把手放到Activity上時,onTouchEvent方法就會一遍一遍地被調(diào)用)
3.touch事件的傳遞:
在一個Activity里面放一個TextView的實例tv竣贪,綁定onTouchClickListener監(jiān)聽器军洼,并且這個tv的屬性設(shè)定為 fill_parent,占滿整個屏幕演怎。
在這種情況下匕争,當(dāng)手放到屏幕上的時候,首先會是tv響應(yīng)touch事件爷耀,執(zhí)行onTouch方法甘桑。
如果onTouch返回值為true,
表示這個touch事件被onTouch方法處理完畢歹叮,不會把touch事件再傳遞給Activity跑杭,也就是說onTouchEvent方法不會被調(diào)用。
(當(dāng)把手放到屏幕上后咆耿,onTouch方法被一遍一遍地被調(diào)用)
如果onTouch的返回值是false德谅,
表示這個touch事件沒有被tv完全處理,onTouch返回以后萨螺,touch事件被傳遞給Activity窄做,onTouchEvent方法被調(diào)用宅荤。
(當(dāng)把手放到屏幕上后,onTouch方法調(diào)用一次后浸策,onTouchEvent方法就會一遍一遍地被調(diào)用)
何謂一遍一遍調(diào)用?
在onTouch 和onTouchEvent方法中惹盼,傳入的肯定是event對象庸汗,一般都是執(zhí)行switch判斷語句,來判斷傳入的event對象是什么手报, 使用event.getAction()方法蚯舱。