0

我有一个onTouch与我的View. 由于某些原因,我想onTouch在将手指移动到屏幕的某个点后释放动作:

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:对不起,如果有任何打字或英文错误!

4

1 回答 1

1

onTouchEvent一种方法是用一个ACTION_UP值重新调用函数。你可以使用这样的东西:

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()未调整

于 2012-09-23T05:25:47.303 回答