title: Pinch and Zoom imageview
body: <p>I have a task to pinch and zoom the imageview, I have made an app where I am swiping the images and it is working fine; now I want to Pinch and Zoom the imageview on the same class ;but I am not able to do this.I have gone through various example but it seems nothing is helping in this case.Below is my code,or provide me some another example for this problem.</p>
  
  <pre><code>imageView.setOnTouchListener(new OnTouchListener() {        
          @Override
   public boolean onTouch(View view, MotionEvent event) { 
   bitmap = BitmapFactory.decodeResource(context.getResources(), image_id[position]);
    bmpWidth = bitmap.getWidth();
    bmpHeight = bitmap.getHeight();
    distCurrent = 1; 
    dist0 = 1;
    drawMatrix();
    float distx, disty;
     switch(event.getAction() &amp; MotionEvent.ACTION_MASK){
     case MotionEvent.ACTION_DOWN:
      //A pressed gesture has started, the motion contains the initial starting location. 
      touchState = TOUCH;
      break;
     case MotionEvent.ACTION_POINTER_UP:
          //A non-primary pointer has gone up. 
          touchState = TOUCH;
          break;
     case MotionEvent.ACTION_POINTER_DOWN:
      //A non-primary pointer has gone down. 
      touchState = PINCH;
  
      //Get the distance when the second pointer touch
      distx = event.getX(0) - event.getX(1);
      disty = event.getY(0) - event.getY(1);
      dist0 = FloatMath.sqrt(distx * distx + disty * disty);
  
      break;
     case MotionEvent.ACTION_MOVE:
      //A change has happened during a press gesture (between ACTION_DOWN and ACTION_UP).
  
      if(touchState == PINCH){      
       //Get the current distance
       distx = event.getX(0) - event.getX(1);
       disty = event.getY(0) - event.getY(1);
       distCurrent = FloatMath.sqrt(distx * distx + disty * disty);
  
       drawMatrix();
      }
  
      break;
     case MotionEvent.ACTION_UP:
      //A pressed gesture has finished.
      touchState = IDLE;
      break;
     }
    touchState = IDLE;
              return true;
          }
      });
  
  
  
  
  
  private void drawMatrix(){
       float curScale = distCurrent/dist0;
       if (curScale &lt; 0.1){
        curScale = 0.1f; 
       }
  
       Bitmap resizedBitmap;    
       int newHeight = (int) (bmpHeight * curScale);
       int newWidth = (int) (bmpWidth * curScale);
       System.out.println("new width: "+newWidth+" new heigt: "+newHeight);
       resizedBitmap = Bitmap.createScaledBitmap(bitmap, newWidth, newHeight, false);
       System.out.println("resized bitmap: "+resizedBitmap);
       imageView.setImageBitmap(resizedBitmap); 
      }
  </code></pre>