Android视图上的双指缩放/旋转

3
在 iPhone 上,我只需执行以下操作(它完美地运行):
view.transform = CGAffineTransformRotate(transform, [(UIRotationGestureRecognizer *)recognizer rotation]);
当然,我期望在 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;
    }
}

在这里,您可以找到一个(未经测试的)RotateGestureDetector 的实现。 - naufraghi
1个回答

4

Android默认情况下没有旋转手势检测器。

但是,你可以通过计算两点触摸事件的旋转来实现。只需确定旋转的支点(即2个触摸点的中心点或其中一个触摸点),并确定第一个触摸事件和第n个触摸事件之间的角度差。然后可以使用rotate()方法将给定的Canvas旋转相应的角度。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接