如何制作之字形布局?

How to make a zig-zag layout?

我想创建与下图相同的之字形布局:

我尝试了很多方法来创建对角线并用图标排列它们,但无法做到完全相同。

我在以下问题的已接受答案的帮助下实现了对角线:

  1. Diagonal line across view
  2. How rotate line in Android XML?

然而,我坚持使用与图像中完全相同的图标排列线条。

如果每个圆形项目都有布局,您可以使用相对布局来对齐它们,使用 align_below、align_left 带边距、align_right 带边距标签。 请提供更多详细信息,连接它们的线路是什么以及 UI 和功能的具体要求是什么。

我创建了这个自定义 ZigZagLayout.java 文件来满足您的要求。您只需更新第一行中的包名称。 它基本上扩展了 RelativeLayout,因此您可以像使用任何其他 ViewGroup class 一样在布局 xml 中使用它。实例化此布局后,只需向其添加子视图,就像通过 addView(View child).

RelativeLayout 所做的那样

动态创建视图的示例代码片段:

ZigZagLayout zigZagLayout = (ZigZagLayout) findViewById(R.id.layout_zigzag);
Button btn = new Button(this);
btn.setText("Test Button");
btn.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
zigZagLayout.addView(btn);

我还为此 ZigZagLayout 添加了一些接口,以便您轻松进行交互,例如设置连接线笔划宽度、可见性、颜色、边距等的能力。

试试看,如果它满足您的要求,请告诉我。干杯。