Androidをマウスで操作したときのMotionEventのメモ
API Level 14 から MotionEvent#getButtonState() でどのボタンが押されたか取得できる。
ボタンを押して、マウスを移動して、ボタンを放したときのイベント。
操作 | action | buttonState |
---|---|---|
左ボタンを押す | ACTION_DOWN | BUTTON_PRIMARY |
マウス移動 | ACTION_MOVE | BUTTON_PRIMARY |
左ボタンを放す | ACTION_UP | 0 |
2つのボタンを同時に押したときのイベント。2つ押してもACTION_DOWNとACTION_UPは1回だけ。
操作 | action | buttonState |
---|---|---|
左ボタンを押す | ACTION_DOWN | BUTTON_PRIMARY |
右ボタンを押す | ACTION_MOVE | BUTTON_PRIMARY+BUTTON_SECONDARY |
マウス移動 | ACTION_MOVE | BUTTON_PRIMAR+BUTTON_SECONDARY |
左ボタンを放す | ACTION_MOVE | BUTTON_SECONDARY |
右ボタンを放す | ACTION_UP | 0 |
マウスのhoverなどは API Level 12 から、View#setOnGenericMotionListener() が追加されているのでこれで捕まえられる。