2012年12月4日火曜日

Androidのタッチイベント(ICS)

Androidのタッチイベントについてのまとめ(API8以降の場合)

・マルチタッチする際のポインタ(指)のidの取得方法
  int index = event.getActionIndex();
  int id = event.getPointerId(index);
・マルチタッチの場合はevent.getActionMasked()を使ってイベントを判定
 マルチタッチの場合はMotionEvent.ACTION_POINTER_DOWNを使う。
 この際getAction()ではなく、getActionMasked()を使う。※getAction()ではない。
switch (event.getActionMasked()) {
 case MotionEvent.ACTION_DOWN:
  //指1本でタッチした時
  break;
 case MotionEvent.ACTION_POINTER_DOWN:
  //指2本目以降でタッチした時
  break;
・タッチされた指が2本目か3本目かを判定したい場合はACTION_POINTER_DOWNの場合に、getPointerCount()を用いる
switch (event.getActionMasked()) {
 case MotionEvent.ACTION_POINTER_DOWN:
  //指2本目以降でタッチした時
  if(event.getPointerCount() == 2){
   //2本指の時の処理
  }
  break;