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);
}