public static void Touch() {}

static final int NONE = 0;


static final int DRAG = 1;

static final int ZOOM = 2;

int mode = NONE;

 

 

int posX1=0, posX2=0, posY1=0, posY2=0;

 

 

float oldDist = 1f;

float newDist = 1f;

 

public boolean onTouchEvent(MotionEvent event) {

  int act = event.getAction();

  String strMsg = "";

 

   switch(act & MotionEvent.ACTION_MASK) {

      case MotionEvent.ACTION_DOWN:   

          posX1 = (int) event.getX();

          posY1 = (int) event.getY();

 

          Log.d("zoom", "mode=DRAG" );

          mode = DRAG;

          break;

      case MotionEvent.ACTION_MOVE:

          if(mode == DRAG) {  

              posX2 = (int) event.getX();

              posY2 = (int) event.getY();

  

              if(Math.abs(posX2-posX1)>20 || Math.abs(posY2-posY1)>20) {

                  posX1 = posX2;

                  posY1 = posY2;

                  strMsg = "drag";

                  Toast toast = Toast.makeText(this, strMsg, Toast.LENGTH_SHORT);

                  toast.show();

              }

          } else if (mode == ZOOM) {   

              newDist = spacing(event);

  

               Log.d("zoom", "newDist=" + newDist);

              Log.d("zoom", "oldDist=" + oldDist);

  

               if (newDist - oldDist > 20) {  // zoom in

                  oldDist = newDist;

   

                   strMsg = "zoom in";

                  Toast toast = Toast.makeText(this, strMsg, Toast.LENGTH_SHORT);

                  toast.show();

              } else if(oldDist - newDist > 20) {  // zoom out

                  oldDist = newDist;

   

                   strMsg = "zoom out";

                  Toast toast = Toast.makeText(this, strMsg, Toast.LENGTH_SHORT);

                  toast.show();

              }

          }

          break;

      case MotionEventACTION_UP:   

      case MotionEventACTION_POINTER_UP: 

          mode = NONE;

          break;

      case MotionEventACTION_POINTER_DOWN: 

    

          mode = ZOOM;

 

          newDist = spacing(event);

          oldDist = spacing(event);

 


          Logd("zoom", "newDist=" + newDist);

          Logd("zoom", "oldDist=" + oldDist);

          Logd("zoom", "mode=ZOOM");

          break;

      case MotionEvent.ACTIONCANCEL:

      default :

          break;

  }

 

  return superonTouchEvent(event);

}