當我們創建一個基本的Android時候
通常會繼承Activity
而這個Activity會有一個觸碰的事件可以讓我們捕捉
public boolean onTouchEvent(MotionEvent event)
只要我們一碰螢幕他就會把MotionEvent 的物件給傳送進去這個function
我們可以透過這物件取得現在的各種動作與紀錄
/*這可以取得目前觸碰的螢幕座標X-Y*/
float x = event.getX();
float y = event.getY();
而MotionEvent可以透過getAction()來取得動作
event.getAction();
我們可以利用他回傳的參數來做判斷
switch (event.getAction()){
case MotionEvent.ACTION_DOWN://碰到瞬間break;
case MotionEvent.ACTION_MOVE://移動break;
case MotionEvent.ACTION_UP://離開螢幕break;
}
當然不只有這些參數
有興趣可以參考Android 官方網站的API
MotionEvent
當我想在這螢幕實作Click時。(我所要的click是必須要瞬擊,而不是他押很久放開也算click的話)
我嘗試在ACTION_UP裡面做了一個判斷
long diffTime=event.getEventTime()-event.getDownTime();
if(diffTime<120){
//do click
}
我可以藉由取得按下時間跟放開時間的差來判斷他
沒有留言:
張貼留言