0

我租了一个编码器来为我的公司开发一个基于 Android 的 OpenGL 应用程序。该应用程序做了一些非常复杂的事情,并根据通过意图(来自我的其他应用程序)的坐标来渲染 3d 管。我需要在他的 OpenGL 应用程序中添加一个按钮,以便退出应用程序并返回到我原来的应用程序。我只接触过 Java,不知道如何在不涉及布局的情况下添加元素。我不希望按钮基于 OpenGL,因为我对 OpenGL 真的一无所知,所以我宁愿在 Activity 之上放置一个 Android 元素。

这就是他的创建例程的样子。(启动应用程序的意图是传递数据。为了编译,我必须注释掉该代码并仅组成数据)。

    protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    Intent intent = getIntent();
    //String data = intent.getStringExtra("data");                          
    //double radius = Double.parseDouble(intent.getStringExtra("radius"));                          
    //double width = Double.parseDouble(intent.getStringExtra("width"));                            
    String data = "254,0,90,2,254,0,90,2";
    double radius = 20;
    double width = 10;
    openGLTube3D = new OpenGLTube3D(this, data, radius, radius, width);
    setContentView(openGLTube3D);
}

他使用setContentView()他的 OpenGL 类而不是 XML 文件,所以我不知道在哪里添加按钮。

任何人都可以帮忙吗?

4

1 回答 1

4

如果 OpenGLTube3D 是一个视图,那么我建议:

像您通常那样创建一个 XML 文件,以 framelayout 作为根,但不要使用 opengl 视图。这应该包含您想要在 OpenGL 视图顶部显示的任何按钮或小部件。

你会想要这样的东西(请原谅下面的任何语法错误,我是凭记忆写的):

<FrameLayout
    android:id="@+id/myframelayout>
    <Button
      android:...
      android:...
      android:... />
</FrameLayout>

然后,在 onCreate 中,您希望将 layout.xml 设置为内容视图,然后您希望将 OpenGL 视图作为第一个索引插入到 framelayout 中(因此它将出现在按钮下方)

伪代码:

openGLTube3D = new OpenGLTube3D(this, data, radius, radius, width);    
FrameLayout frame = (FrameLayout)findViewById(R.id.myframelayout);
frame.addView(openGLTube3D, 0);

我相信这应该将 OpenGL 视图放在框架布局中定义的所有其他元素的下方。

于 2012-09-07T17:10:14.933 回答