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)。どんな提案も歓迎します!
もう1つの問題:2つの関数の違いがわかりません:event.getX()event.getRawX()。誰かがそれを説明できますか?(時々、使用するgetX()とコードがうまくいかないことがありますが、使用するとgetRawX()うまくいきます!!)
P / s:タイピングや英語のエラーがあれば申し訳ありません!

4

1 に答える 1

1

onTouchEventこれを行う1つの方法は、値を使用して関数を再呼び出しする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 に答える