我是 android 编程的新手(刚刚做了一些教程/阅读了开发指南等),作为每个新手我都想做一个无用的游戏:-)。
目前我正在为不同 View 的布局而苦恼。与示例类似,我创建了一个扩展 SurfaceView
并将其放入 FrameLayout
的类。在这个 SurfaceView
周围,我想要其他 View ,例如 Buttons
和 TextViews
。
像这样:
-----------------------------------------------
| TextView | SurfaceView | TextView |
| | | |
------------ ------------
| | | TextView |
| | | |
| | ------------
| | | TextView |
| | | |
| | ------------
| | | |
| | | |
-----------------------------------------------
| Button Button |
-----------------------------------------------
我已经设法用 FrameLayout
和 RelativeLayouts
做了类似的事情(将 TextViews
粘在屏幕的边缘)但是我想更好地控制 SurfaceView
的大小,因为它应该是我将在其中绘制的对象的宽度和高度的倍数。我已经尝试将 layout_width
和 layout_height
设置为一些 dp 值,但是当我以 0,0 开始绘画时,它仍然位于最左上角( TextView
是..)。
那么,实现上述布局的最佳做法是什么?使用什么布局?或者我应该更好地在 SurfaceView
的 draw()
函数中绘制文本?
最佳答案
布局是将 OpengGL 内容与按钮、标签和其他类型的 View 对象结合起来的正确方式。您可以在其他布局中组合布局...因此您可以逐步组合线性布局或任何您喜欢的布局来构建您的屏幕。
例如,您可以使用相对布局来设置按钮(b1、b2)和屏幕的其余部分:
+-----------+
| Zone 1 |
+-----+-----+
| b1 | b2 |
+-----+-----+
然后在区域 1 中,您可以对 3 个主要列使用水平线性布局
+----+----+----+
| c1 | c2 | c3 |
+----+----+----+
在c2中你可以放置SurfaceView,在c1中放置文本标签
在 c3 中将有一个新的垂直线性布局来显示文本标签。
+----+
| t1 |
+----+
| t2 |
+----+
| t3 |
+----+
关于android - 将 SurfaceView 与其他 View (如 TextView 和 Buttons)组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4027388/