我有一个用OpenGL显示动画的GLSurfaceView。
现在,我想在此视图中添加一个按钮。这是如何实现的?
可以在不涉及xml布局的情况下完成吗?
发布于 2010-09-06 07:13:49
您可以手动构建视图并将其添加到活动的内容视图中。在您的活动的onCreate方法中,在对GLSurfaceView执行setContentView之后,或者通过XML布局,您可以执行以下操作,这将在左上角的GLSurfaceView上添加一个按钮:
Button b = new Button(this);
b.setText("Hello World");
this.addContentView(b,
new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));如果希望按钮位于屏幕上的其他位置,则需要将其添加到布局中,然后将该布局添加到内容视图中。要使按钮位于屏幕中心,您可以执行以下操作:
LinearLayout ll = new LinearLayout(this);
Button b = new Button(this);
b.setText("hello world");
ll.addView(b);
ll.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
this.addContentView(ll,
new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));如果你想让按钮出现在屏幕的底部,你可以用Gravity.BOTTOM代替Gravity.CENTER_VERTICAL,等等。
确保调用的是return super.onTouch...在您的触摸事件方法中,如果您的GLSurfaceView正在拦截触摸,否则您的按钮将不会接收触摸事件。
https://stackoverflow.com/questions/3588093
复制相似问题