我对Android编程完全不熟悉(只做了一些教程/阅读开发指南等),并且每个新手我都想做一个无用的游戏: - )。
目前我正在努力应对不同观点的布局。与示例类似,我创建了一个扩展SurfaceView
并将其放入FrameLayout
的类。围绕这个SurfaceView
我希望有其他视图,例如Buttons
& TextViews
。
像这样:
-----------------------------------------------
| TextView | SurfaceView | TextView |
| | | |
------------ ------------
| | | TextView |
| | | |
| | ------------
| | | TextView |
| | | |
| | ------------
| | | |
| | | |
-----------------------------------------------
| Button Button |
-----------------------------------------------
我设法用FrameLayout
和RelativeLayouts
做了类似的事情(在屏幕的边缘贴了TextViews
),但我想更好地控制尺寸SurfaceView
,因为它应该是我将要在其中绘制的对象的宽度和高度的倍数。我已经尝试将layout_width
和layout_height
设置为某些dp值,但是当我开始绘制0,0时,它仍然位于左上角(TextView
所在的位置......)
那么,实现上述布局的最佳实践是什么?使用什么布局?或者我应该更好地在我draw()
的{{1}}函数中绘制我的文字吗?
答案 0 :(得分:6)
布局是将OpengGL内容与按钮,标签和其他类型的视图对象相结合的正确方法。您可以将布局组合在其他布局中......这样您就可以逐步构建线性布局或任何您喜欢的布局。
例如,您可以使用相对布局来设置按钮(b1,b2)和屏幕的其余部分:
+-----------+
| Zone 1 |
+-----+-----+
| b1 | b2 |
+-----+-----+
然后在区域1内,您可以对3个主要列使用水平线性布局
+----+----+----+
| c1 | c2 | c3 |
+----+----+----+
在c2内部,您可以放置SurfaceView,在c1中放置文本标签
c3内部将是一个新的垂直线性布局,用于显示文本标签。
+----+
| t1 |
+----+
| t2 |
+----+
| t3 |
+----+