【问题标题】:Menu to launch GLSurfaceViews启动 GLSurfaceViews 的菜单
【发布时间】:2012-05-04 23:03:45
【问题描述】:

我为测量设备编写了一个手机界面。我在 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)

【问题讨论】:

    标签: android surfaceview glsurfaceview


    【解决方案1】:

    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() 必须在活动中。

    【讨论】:

      猜你喜欢
      • 2010-09-13
      • 2012-08-17
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-24
      • 1970-01-01
      相关资源
      最近更新 更多