1

我在 GLSurfaceView 上显示 2D 图像并希望以特定角度旋转它(即 180 ,75,360 ...)

我在触摸事件中编写了以下代码。(这里 GPUImageView 扩展了 GLSurfaceView )并且我从处理两个手指旋转手势的 Rotate Gesture Detector 类中获得了变量 rotationDegree 的值。下面的代码旋转 GLSufaceview,但 GLSurfaceView 中显示的内容/iamge 保持不变(不在其中旋转)。android有例子,但它们是用于3D而不是旋转度数。

    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        rotationDetector.onTouchEvent(event);
        /* Rotate View Here */
        GPUImageView.this.setRotation(rotationDegree);
        requestRender();
        return true;
    }

我有我的自定义旋转检测器类,它调度与两个手指旋转相关的事件

    private class RotateListener extends RotateGestureDetector.SimpleOnRotateGestureListener
    {
        @Override
        public boolean onRotate(RotateGestureDetector detector)
        {
            rotationDegree -= detector.getRotationDegreesDelta();
            return true;
        }
    }
4

1 回答 1

0

您还可以通过 ModelMatrix 旋转表面视图。

onDrawFrame()
{
Matrix.tramslateM(yourModelMatrix,offsetValue,translationInx,translationInY,translationInZ);
Matrix.rotateM(yourModelMatrix,offsetValue,andgle in degrees,inDirectionX,inDirectioY,inDirectionZ);
}
于 2013-11-14T07:41:07.750 回答