用于启动GLSurfaceViews的菜单

时间:2012-05-04 23:03:46

标签: android surfaceview glsurfaceview

我为测量设备写了一个手机界面。我在GLSurfaceViews中有一堆不同的功能屏幕。我可以正确启动渲染,但我无法弄清楚如何使后退按钮工作。 我的渲染代码如下:

Button mSpecButton = new Button(this);
mSpecButton.setText("Spectrometer");
mSpecButton.setOnClickListener(new View.OnClickListener()
{
    public void onClick(View v)
    {
        glSurfaceView = new GLSurfaceView(mRun);
        mRender = new renderSpectro(mRun);
        glSurfaceView.setRenderer(mRender);
        setContentView(glSurfaceView);
    }
});

我无法弄清楚放置public boolean onKeyDown(int keyCode, KeyEvent event)

的位置

1 个答案:

答案 0 :(得分:0)

onKeyDown()方法必须放在活动中。如果要使用它来控制GLSurfaceView或Renderer,则必须使用其他方式将其发送到那里。例如,在您的主要活动中,您可以:

//Somewhere in the code
GLSurfaceView glSurfaceView = new myGLSurfaceView();

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    glSurfaceView.doBackAction(); //Or something similar
}

在你的myGLSurfaceView中你只有一个方法:

public void doBackAction() {
    //Yay
}

如果您担心线程安全,它会变得有点复杂,但最初的onKeyDown()必须在活动中。