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