我正在尝试在Android中编写桌游。但是,此游戏没有固定的棋盘。取而代之的是,棋盘由游戏图块动态组成。因此,您可以根据图块的位置使用不同的布局。以下是有效布局的一些示例:
示例1:
1111111111111111
示例2:
1111
1111
1111
1111
示例3:
111111
11
11
111111
示例4:
11
111111
111111
11
假设布局存储在txt文件中。
为了制作UI,我想我想创建一个充当图块容器的组。该代码将负责创建图块并动态创建布局组件,并将其放入组中。另外,请记住,位置很重要。在第一个示例中,由于屏幕尺寸的限制,我不想将图块显示为两行。
实现此UI的最佳方法是什么?
答案 0 :(得分:0)
我刚刚找到了可行的解决方案。可能不是最佳选择,但它解决了我的问题:
/*Start with first row*/
var currentRow = TableRow(context)
/*Go char by char*/
for (letter in boardStructure) {
if (letter == separator) {
/*Put row in table layout and create next row*/
table.addView(currentRow)
currentRow = TableRow(context)
} else {
/*Create element and put it in row*/
val tv = TextView(context)
tv.text = letter.toString()
tv.width = 100
tv.height = 100
currentRow.addView(tv)
}
}
/*Put final row in the table layout*/
table.addView(currentRow)
boardStructure
是从问题中描述的包含1和0的文件加载的String
。 separator
是用于分隔每一行的字符。 table
是布局中的预定义TableLayout
。
只是为了隔离我所问的问题,而不是放置图块的表示,而是将文件中收到的1和0放置为说明问题。为了从此处继续开发,我将在else分支中检查letter
是0还是1。