我租了一名程序员为我的公司开发基于Android的OpenGL应用程序。该应用程序做了一些相当复杂的东西,并根据通过意图(从我的其他应用程序)传递的坐标呈现3d管。我需要在他的OpenGL应用程序中添加一个按钮才能退出应用程序并返回原来的应用程序。我只涉及Java,并且不知道如何在不涉及布局时添加元素。我不希望按钮是基于OpenGL的,因为我对OpenGL一无所知,所以我宁愿在活动的顶部放置一个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文件,所以我不知道在哪里添加按钮。
有人可以帮忙吗?
答案 0 :(得分:3)
如果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视图放在framelayout中定义的所有其他元素下面。