【发布时间】:2013-11-14 03:46:17
【问题描述】:
我在 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;
}
}
【问题讨论】:
-
实际设置
rotationDegree的代码在哪里?在您为此特定功能显示的代码中,它是恒定的。 -
我添加了如何修改 rotationDegree 变量的代码。 rotationDegree 是变量,当我的自定义 RotationGestureDetecter 类检测到两个手指旋转完成时会修改它。正如我所说的旋转工作正常,但它只会旋转外部视图内部内容保持在同一位置。
标签: android opengl-es rotation glsurfaceview