Android Pinch / Two Finger旋转视图

时间:2011-11-22 04:20:26

标签: java android

在iPhone上我只是这样做(它完美无瑕):

view.transform = CGAffineTransformRotate(transform,[(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;
    }
}

1 个答案:

答案 0 :(得分:3)

开箱即用,Android没有Rotate Gesture Detector。

然而,您可以做的是从两点触摸事件计算旋转。只需确定旋转的支点(2个触摸点的中心点或其中一个触摸点),并确定第一个触摸事件和第n个触摸事件之间的角度增量。然后,您可以使用rotate()方法旋转给定的画布。

事实上,编写自己的“手势探测器”可能非常容易。