2011-08-16 111 views
0

我已經爲我的'實施'縮放縮放功能做了自己的代碼,它可以工作,但它根本不是用戶友好的。通常很零星,一般來說並不漂亮。我想知道你們中的任何一位能否幫助我,也許是一種更簡單的方法或不同的方法。也許使用GestureListener我不確定如何使用它。任何幫助將是欣賞。Android平滑捏縮放?

下面是我當前的代碼:

public boolean onTouchEvent(MotionEvent event) { 
     float cr, cr2 = 0.0f; 
     cx = new float[2]; 
     cy = new float[2]; 
     float zx; 
     final int action = event.getAction(); 
     switch (action) { 
     case MotionEvent.ACTION_DOWN: { 
      break; 
     } 
     case MotionEvent.ACTION_POINTER_DOWN: { 
      break; 
      } 
     case MotionEvent.ACTION_MOVE: { 
      for (int i = 0; i<event.getPointerCount(); i++) { 
      if (run == true) { //see if it is the first time running program and set orig to the scale/screen res 
      Orig = scale * 800; //800 = screen res 
      } 
      cx[i] = event.getX(i); //get x and y for each finger 
      cy[i] = event.getY(i); 

      cr = (cx[0] - cx[1])*(cx[0] - cx[1]) + (cy[0] - cy[1])*(cy[0] - cy[1]); //get the distance between pointers 
      cr2 = FloatMath.sqrt(cr); 

      if (run == true) { 
      scale = cr2/800; 
      run = false; 
      } 
      else { 
       if (scale >= 550.0f) { 
        scale = 1.0f; 
       } 
       if (scale <= 0.0f) { 
        scale = 1.0f; 
       } 
       nScale = Orig/cr2; 
       scale = nScale * 0.5f; 

      } 
      }} 

這可能不是做這在所有的最佳途徑。在幾個事件中平均取得更好的迴應?

感謝

回答