4

我有一個過去2天的問題,無法解決它,因爲我是新手。其實我正在開發一款Android應用程序,需要在Android ImageView上進行雙指縮放和雙指旋轉。我有多個教程和解決方案適用於捏變焦,但不適用於2指旋轉。我分享了最簡單的教程,這個教程很容易理解,我想將它擴展爲2個手指旋轉。以下是代碼片段:捏縮放和2個手指旋轉Android中的ImageView

public class MainActivity extends Activity { 
    private ImageView mImageView; 
    private Matrix mMatrix = new Matrix(); 
    private float mScale = 1f; 
    private ScaleGestureDetector mScaleGestureDetector; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mImageView = (ImageView) findViewById(R.id.imageView); 
     mScaleGestureDetector = new ScaleGestureDetector(this, new ScaleListener()); 
    } 

    public boolean onTouchEvent(MotionEvent ev) { 
     mScaleGestureDetector.onTouchEvent(ev); 
     return true; 
    } 

    private class ScaleListener extends ScaleGestureDetector. 
      SimpleOnScaleGestureListener { 
     @Override 
     public boolean onScale(ScaleGestureDetector detector) { 
      mScale *= detector.getScaleFactor(); 
      mScale = Math.max(0.1f, Math.min(mScale, 5.0f)); 
      mMatrix.setScale(mScale, mScale); 
      mImageView.setImageMatrix(mMatrix); 
      return true; 
     } 
    } 
} 

另外我想用它們來GPUImage,我的意思是,儘管Android的ImageView的我想用GPUImage。如何將GPUImage轉換爲ImageView?這是第二件事。首先,我想實現2指旋轉(或某種意義上的MultiTouch)。謝謝

回答

0

這是對我有用的解決方案。 https://stackoverflow.com/a/18276033只有一個線我要補充這裏這應該是

  • OnRotation(RotationGestureDetector rotationDetector)方法添加imageView.setRotation(imageView.getRotation() + (-angle));活性內側向新的旋轉值設置爲ImageView的
  • 這是尋求基本的幫助。剩下的實施就好了

    +0

    這是我之前發佈的解決方案。 https://stackoverflow.com/questions/6578320/how-to-apply-zoom-drag-and-rotation-to-an-image-in-android/47861501#47861501 – user2288580