2013-04-29 42 views
0

我有一個ScaleGestureDetector的自定義視圖,在該視圖上我想使用捏來縮放操作。 當視圖非常大時,它可以正常工作,但是當它很小時,只有zomm能正常工作(我將兩個手指放在視圖上並將它們沿不同方向移動),當我嘗試縮小視圖時(將兩個手指放在視圖上並一起移動)沒有任何反應。屏幕截圖如下: enter image description here使用ScaleGestureDetector縮小視圖

問題出現在中心的小視圖中。 在頂部和底部的較大視圖zomm和縮小工作正常。

代碼:

private class MyScaleGestureListener implements OnScaleGestureListener 
{ 
    public boolean onScale(ScaleGestureDetector detector) 
    { 
     scaleFactor *= detector.getScaleFactor(); 
     if (scaleFactor < 1) 
      scaleFactor = 1; 

     int newScrollX = (int)((getScrollX() + detector.getFocusX()) * detector.getScaleFactor() - detector.getFocusX()); 
     int newScrollY = (int)((getScrollY() + detector.getFocusY()) * detector.getScaleFactor() - detector.getFocusY()); 
     scrollTo(newScrollX, newScrollY); 

     invalidate(); 

     return true; 
    } 

    public boolean onScaleBegin(ScaleGestureDetector detector) 
    { 
     return true; 
    } 

    public void onScaleEnd(ScaleGestureDetector detector) 
    { 
    } 
} 

如何使變焦失去工作的小看法?

回答