将SurfaceView与其他视图(如TextView和Buttons)相结合

bik*_*126 5 layout android opengl-es surfaceview android-layout

我对android编程完全不熟悉(只做了一些教程/阅读开发指南等),并且每个新手我都想做一个无用的游戏:-).

目前我正在努力与不同观点的布局.与示例类似,我创建了一个扩展a SurfaceView并将其放入a的类FrameLayout.围绕这个SurfaceView我希望有其他视图像Buttons&TextViews.像这样的东西:

-----------------------------------------------
| TextView | SurfaceView           | TextView |
|          |                       |          |
------------                       ------------
|          |                       | TextView |
|          |                       |          |
|          |                       ------------
|          |                       | TextView |
|          |                       |          |
|          |                       ------------
|          |                       |          |
|          |                       |          |
-----------------------------------------------
| Button                             Button   |
-----------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我已经设法用a FrameLayoutRelativeLayouts(粘TextViews在屏幕的边缘)做这样的事情,但我想更好地控制它的大小,SurfaceView因为它应该是对象的宽度和高度的倍数我会画画.我已经尝试过设置layout_widthlayout_height一些dp值,但是当我开始绘制0,0时它仍然位于左上角(那里TextView是......).

那么,实现上述布局的最佳实践是什么?使用什么布局?或者我应该更好地在我的draw()功能中绘制我的文本SurfaceView

Glo*_*der 6

布局是将OpengGL内容与按钮,标签和其他类型的视图对象相结合的正确方法.您可以在其他布局中组合布局...因此您可以逐步构建线性布局或任何您喜欢的布局.

例如,您可以使用相对布局来设置按钮(b1,b2)和屏幕的其余部分:

+-----------+
|  Zone 1   |
+-----+-----+
| b1  | b2  |
+-----+-----+
Run Code Online (Sandbox Code Playgroud)

然后在区域1内,您可以对3个主列使用水平线性布局

+----+----+----+
| c1 | c2 | c3 |
+----+----+----+
Run Code Online (Sandbox Code Playgroud)

在c2内部,您可以放置​​SurfaceView,在c1中放置文本标签

内部c3将是一个新的垂直线性布局,用于显示文本标签.

+----+
| t1 |
+----+
| t2 |
+----+
| t3 |
+----+
Run Code Online (Sandbox Code Playgroud)