我在GLSurfaceView上显示2D图像并希望以特定度数旋转它(即180,75,360 ......)
我在触摸事件中编写了以下代码。(这里GPUImageView扩展了GLSurfaceView),我从我的Rotate Gesture Detector类中获取值rotationDegree,它处理两个手指旋转手势。下面的代码旋转GLSufaceview,但GLSurfaceView中显示的content / 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;
}
}
答案 0 :(得分:0)
您也可以通过ModelMatrix旋转曲面视图..
onDrawFrame()
{
Matrix.tramslateM(yourModelMatrix,offsetValue,translationInx,translationInY,translationInZ);
Matrix.rotateM(yourModelMatrix,offsetValue,andgle in degrees,inDirectionX,inDirectioY,inDirectionZ);
}