当用户触摸屏幕时,更改我使用OpenGl绘制的内容

时间:2010-11-10 10:46:18

标签: android opengl-es

我正在开发一个Android应用程序。我很新。

我有以下课程:

class CustomGLSurfaceView extends GLSurfaceView

class CustomRenderer implements GLSurfaceView.Renderer

CustomGLSurfaceView使用CustomRendereronDrawFrame方法上呈现多维数据集。

我在onTouchEvent(MotionEvent event)上添加了CustomGLSurfaceView来管理触摸事件:

class CustomGLSurfaceView extends GLSurfaceView {

    // For touch inputs - previous touch (x, y)
    private float previousX;
    private float previousY;

    private CustomRenderer myRenderer;

    public CustomGLSurfaceView(Context context) {
        super(context);
        myRenderer = new CustomRenderer();
        setRenderer(myRenderer);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        float currentX = event.getX();
          float currentY = event.getY();
          switch (event.getAction()) {
             case MotionEvent.ACTION_MOVE:
                 myRenderer.handleMovement(currentY, currentY, previousX, previousY);
          }
          // Save current x, y
          previousX = currentX;
          previousY = currentY;
          return true;  // Event handled
    }
}

我是否必须修改onDrawFrame以绘制新内容或旋转多维数据集?我必须在handleMovement上做到这一点。

感谢。

1 个答案:

答案 0 :(得分:0)

检查SDK的samples目录中的APIDemo项目。具体来说就是TouchRotateActivity.java文件的一个例子。由于您提到您是Android新手,我建议您浏览APIDemo应用程序以查看示例代码可能/可用的内容。