2012-09-23 47 views
0

我有一個onTouch事件可以很好地與我的View。由於某些原因,我要釋放的動作onTouch後,我移動手指到屏幕上的某些點:如何在ACTION_MOVE到某些點時發佈onTouch事件? Android

switch(event.getAction & MotionEvent.ACTION_MASK){ 
    case ACTION_UP: 
     // When I release the touch, Event goes here 
     break; 
    case ACTION_DOWN: 
     // when I touch screen, Event goes here 
     break; 
    case ACTION_MOVE: 
     // When I move the finger, Event goes here 
     break; 

}  

有沒有辦法通過代碼來釋放觸摸在ACTION_MOVE(不是我的手指:d)。任何建議都歡迎!
還有一個問題:我不知道2個函數之間的差異:event.getX()event.getRawX()。任何人都可以解釋它嗎? (有些時候,我使用getX(),我的代碼會出錯,但如果我使用getRawX(),它運行良好!!)
P/s:對不起,如果有任何鍵入或英文錯誤!

回答

1

一種方法是使用ACTION_UP值重新調用onTouchEvent函數。你可以使用這樣的事情:

if(wantToRelease) { 
    MotionEvent newEvent = MotionEvent.obtain(event); 
    newEvent.setAction(MotionEvent.ACTION_UP); 
    this.onTouchEvent(newEvent); 
    return true; 
} 

getX/Y()getRawX/Y()之間的區別是,getX/Y()調整爲集裝箱和看法,有時可能會產生問題,如果你的活動跨越多個視圖。 getRawX/Y()未調整

+0

非常感謝你!我必須做什麼,如果我只是想中斷'ACTION_MOVE'?例如,如果用戶通過某個點移動手指,通常這是一個'onTouch'事件,但我希望它是'onTouch'事件?我可以做嗎?再次感謝!! –

+0

你能再幫我一次嗎? –