48

Android の 2 つの方法に混乱しています。どちらの方法でも、イベントの種類、つまりダウン イベントかアップ イベントかがわかるようです。

いつどれを使用しますか?

public void onTouchEvent(MotionEvent e)

私はそれを読んだので、ドキュメントを引用しないでください。何か違うものを得るためにどちらのメソッドにも指定できるパラメーターがありません。

public final int getAction ()

public final int getActionMasked()
4

2 に答える 2

53

getAction()は、ポインター ID とイベント (つまり、上、下、移動) 情報を返します。

getActionMasked()は、イベント (つまり、上、下、移動) 情報のみを返します。他の情報はマスクされています。

例えば:

getAction()は0x0105を返します。
getActionMasked()は0x0005を返します。これは 0x0105 && ACTION_MASKです。

  1. ACTION_MASK の値は 0xFF です。以下のアクションをマスクします。
    • ACTION_DOWN 0、UP 1、MOVE 2
    • ACTION_POINTER_DOWN 5、UP 6
  2. ACTION_POINTER_ID_MASK の値は 0xFF00 です。次の非推奨の定数からポインター ID をマスクしました。
    • ACTION_POINTER_1_DOWN 0x0005
    • ACTION_POINTER_2_DOWN 0x0105
    • ACTION_POINTER_3_DOWN 0x0205
    • ...
于 2013-08-17T01:57:18.800 に答える
24

はい、どちらもアクション (アップ/ダウンなど) を返しますがgetAction()、ポインター情報を含むアクションを返す場合があります。その場合、イベントは少し異なる可能性があります。getActionMasked()ポインタ情報が「マスクされた」「単純な」アクションを常に返します(わかりますか?)。次に、同じイベントを呼び出しgetPointerIndex()てポインターのインデックスを取得します。これは、複数の接触点 (ポインター) を持つマルチタッチ デバイスで最も一般的に見られることに注意してください。ポインタ インデックスは基本的に、イベントとコンタクト ポイントを照合する方法であり、それらを区別することができます。

于 2013-06-29T22:14:14.450 に答える