按钮和 GLSurfaceView
我有一个 GLSurfaceView,我在其中使用 OpenGL 显示一些动画。
我现在想向该视图添加一个按钮。这是如何实现的?
不涉及xml布局可以做到吗?
I have a GLSurfaceView where I show some animations using OpenGL.
I now want to add a button to this view. How is this accomplished?
Can it be done without involving the xml layout?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以手动构建视图并将其添加到活动的内容视图中。在 GLSurfaceView 上执行 setContentView 或通过 XML 布局后,在 Activity 的 onCreate 方法中,您可以执行以下操作,这将在左上角的 GLSurfaceView 顶部添加一个按钮:
如果您希望按钮位于屏幕上的其他位置您需要将其添加到布局中,然后将该布局添加到内容视图中。要让按钮位于屏幕中央,您可以执行以下操作:
如果您希望按钮位于屏幕底部,您可以使用 Gravity.BOTTOM 而不是 Gravity.CENTER_VERTICAL 等。
确保您正在调用 return super。 onTouch... 在您的触摸事件方法中,如果您的 GLSurfaceView 正在拦截触摸,否则您的按钮将不会接收触摸事件。
You can manually build and add Views to the content view of the Activity. In the onCreate method in your Activity after doing setContentView on your GLSurfaceView or through an XML layout you can do the following which will add a button on top of the GLSurfaceView in the upper left corner:
If you want the button to be somewhere else on screen you will need to add it to a layout and then add that layout to the content view. To have a button that is in the center of the screen you can do the following:
If you want the button on the bottom of the screen you can use Gravity.BOTTOM instead of Gravity.CENTER_VERTICAL etc.
Make sure you are calling return super.onTouch... in your touch event methods if your GLSurfaceView is intercepting touches or else your button will not receive touch events.