MotionEvent對象分析

當用戶觸摸屏幕時將建立一個MotionEvent對象。MotionEvent包含關於發生觸摸的位置和時間等細節信息。MotionEvent對象被傳遞到程序中合適的方法好比View對象的onTouchEvent()方法中。在這些方法中咱們能夠分析MotionEvent對象那個,以決定要執行的操做。web

   MotionEvent對象是與用戶觸摸相關的時間序列,該序列從用戶首次觸摸屏幕開始,經歷手指在屏幕表面的任何移動,直到手指離開屏幕時結束。手指的初次觸摸(ACTION_DOWN操做),滑動(ACTION_MOVE操做)和擡起(ACTION_UP)都會建立MotionEvent對象。移動過程當中會產生大量事件,每一個事件都會產生對應的MotionEvent對象記錄發生的操做,觸摸的位置,使用的多大壓力,觸摸的面積,合適發生,以及最初的ACTION_DOWN和時發生等相關的信息。orm

    在設置事件時咱們有2中設置的方式,一種是委託式一種是回調式。第一種就是將事件的處理委託給監聽器處理,你能夠定義一個View.OnTouchListener接口的子類做爲監聽器,其中有onTouch()方法。而第二種是重寫View類本身自己的onTouchEvent方法,也就是控件本身處理事件。onTouch方法接收一個MotionEvent參數和一個View參數,而onTouchEvent方法僅接收MotionEvent參數。這是由於監聽器能夠監聽多個View控件的事件。不管是經過onTouchEvent仍是onTouch方法 它們的返回值都是boolean類型。true的含義是若是當前處理程序在處理完畢該事件後不但願傳播給其餘控件,則返回true。若是View對象不但對此事件不感興趣,並且對與此觸摸序列相關的任何將來事件都不感興趣,那麼返回false。好比若是Button的onTouchEvent方法想要處理用戶的一次點擊 則會有2個事件產生ACTION_DOWN和ACTION_UP,按道理這兩個事件都會調用onTouchEvent方法,若是方法返回false則在按下時你能夠作一些操做,可是手指擡起時你將不能再接收到MotionEvent對象了,因此你也就無從處理擡起事件了。對象

相關文章
相關標籤/搜索