在 android 中绘制锦标赛分组?

Drawing a tournament bracket in android?

我有一个应用程序可以获取玩家列表并进行设置,这样您就可以动态地浏览并创建一个分组。球员的数量和名字都会改变。

我的意思是分列显示,而不是显示整个括号。 IE。它显示的不是箭头的左侧,而是右侧:

我的问题是如何最好地绘制它?

我最初的想法是做多个布局,在其中我使用自定义可绘制对象和线条对文本视图进行硬编码,16/8/4/2 的每一列只有一个边框,但随后我必须不断更改布局设置。

我的第二个是根据这个答案 here 在 canvas 上动态绘制它,但它并没有给出很多实现的想法。

我的问题:如果我选择方法 1,是否可以动态更改 activity 的布局?

如果我选择方法2,我该怎么办?我对 android 还是很陌生。

关于问题 1,是的,您绝对可以动态更改布局。您可以创建多个布局文件并执行以下两项操作之一:第一,您可以使用 activity 的 setContentView(int) 方法将 activity 的布局完全重置为新视图.第二个是确定括号部分的父视图,将其转换为 ViewGroup 并使用 addView(View)removeView(View).

至于问题 2,您可以使用 canvas,但仅使用 canvas 会相当困难,但可能会使用 canvas 和一组文本视图可以工作。虽然这没有直接回答您的问题,但这个 tutorial 是我过去使用过的,它让您很好地了解如何使用 Canvas class 中的 [=] 19=]。