MobileApp > Android > Touch Event
・onTouchEvent()を用いてタッチ時のイベントを検出する
・UP, DOWN, MOVE, CANCELなどのイベントが取得可能
・getX()、getY()でタッチしたx、y座標を取得する
・android:clickable = setClickable(true)が必要とのこと
※onMotionEvent は onTouchEventに変わったらしい。
ダブルタップを検出するには
GestureDetector.OnDoubleTapListenerインターフェースを使う
MotionEvent.ACTION_DOWN | タッチしたとき |
MotionEvent.ACTION_UP | タッチが離れたとき |
MotionEvent.ACTION_MOVE | タッチしながら移動したとき |
MotionEvent.ACTION_CANCEL | タッチがキャンセルされたとき |
MotionEvent.ACTION_OUTSIDE | タッチがターゲット外を押下したとき |
getX() , getY() | タッチされてたX,Y座標 |
getAction() | タッチイベントのアクション |
getDownTime() | 押されていた時間(ms単位) |
getEdgeFlags() | スクリーン端判定 |
getSize() | タッチされている範囲、サイズ(推定) |
getEventTime() | タッチされていた継続時間(ms単位) |
getPressure() | タッチされた圧力 |
@Override public boolean onTouchEvent(MotionEvent event) { switch ( event.getAction() ) { //タッチした case MotionEvent.ACTION_DOWN: break; //タッチしたまま移動 case MotionEvent.ACTION_MOVE: break; //タッチが離れた case MotionEvent.ACTION_UP: break; //タッチがキャンセルされた case MotionEvent.ACTION_CANCEL: break; } //タッチした際のx座標 x = (int) event.getX(); //タッチした際のy座標 y = (int) event.getY(); return super.onTouchEvent(event); }