我有一个 GLSurfaceView,我在其中使用 OpenGL 显示一些动画。
我现在想向该视图添加一个按钮。这是如何实现的?
不涉及xml布局可以做到吗?
您可以手动构建视图并将其添加到活动的内容视图中。在 GLSurfaceView 上执行 setContentView 或通过 XML 布局后,在 Activity 的 onCreate 方法中,您可以执行以下操作,这将在左上角的 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 等。
如果您的 GLSurfaceView 正在拦截触摸,请确保您在触摸事件方法中调用 return super.onTouch... ,否则您的按钮将不会接收触摸事件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)