的Android捏/双指上视图旋转

问题描述:

在iPhone我简单地做到这一点(和它完美的作品):的Android捏/双指上视图旋转

view.transform = CGAffineTransformRotate(变换,[(UIRotationGestureRecognizer *)识别旋转]);

我当然期待在Android方面做更多的工作(像往常一样)。我注意到Android没有双手旋转手势检测器。有关我如何实现这种行为的任何想法?

这是我用我的捏规模探测器:

private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener { 
    @Override 
    public boolean onScale(ScaleGestureDetector detector) { 
     mScaleFactor *= detector.getScaleFactor(); 

     // Don't let the object get too small or too large. 
     mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 5.0f)); 

     invalidate(); 
     return true; 
    } 
} 
+0

在这里您可以找到[RotateGestureDetector](https://code.google.com/p/rosjava/source/browse/android_honeycomb_mr2/src/org/ros/android/view/visualization/RotateGestureDetector(未经测试)的.java?规格= svn.android.e76dac9e27992b33a1c8903ceb0f2ab08fe55b38及回购= Android和R = d006dfeaf30051cb7e9feb8211f1f20a6a01fac1) – naufraghi

开箱,Android不具备旋转手势检测。

但是,您可以做的是从两点触摸事件计算旋转角度。只需确定旋转的支点(无论是2个触摸点的中心点还是其中一个触摸点),并确定第一个触摸事件与第n个触摸事件之间的角度增量。然后,您可以使用rotate()方法将给定的Canvas旋转该量。

事实上,这可能很容易编写自己的'手势检测器'。