Android事件分發處理

本文將講解Android中的事件分發處理
android

首先來關注三個方法:工具

public boolean dispatchTouchEvent(MotionEvent ev) 事件分發spa

public boolean onInterceptTouchEvent(MotionEvent ev)     事件攔截 code

public boolean onTouchEvent(MotionEvent ev)      事件響應orm

MotionEvent:包含的事件的詳細信息,例如觸摸點的信息,觸摸事件類型的信息等接口

重要方法:事件

(1)getRowX():觸摸點相對於屏幕的座標get

(2)getRowY():觸摸點相對於屏幕的座標it

注:getX()是表示Widget相對於自身左上角的x座標,而getRawX()是表示相對於屏幕左上角的x座標值(注意:這個屏幕左上角是手機屏幕左上角,無論activity是否有titleBar或是否全屏幕),getY(),getRawY()同樣的道理若是你的某個Activity中實現OnTouchListener接口,須要重寫io

onTouch(View view,MotionEvent event)

這個方法,
getRawX()和getRawY()得到的是相對屏幕的位置,getX()和getY()得到的永遠是view的觸摸位置座標
(這兩個值不會超過view的長度和寬度)。


手勢操做

關於手勢操做,這裏其實說的是Android提供的工具類,經過GestureDetector 類來識別和處理onTouch事件,簡化使用。

通常用到下面的三個類。

android.view.GestureDetector

手勢操做的識別類,經過他來使用下面的識別接口。


android.view.GestureDetector.SimpleOnGestureListener

手勢識別的接口類,使用他能夠按需重載本身想要的方法,方法多


android.view.GestureDetector.OnGestureListener;

手勢識別的類,SimpleOnGestureListener接口的父類。使用他須要實現他全部的方法。

相關文章
相關標籤/搜索