Android 四大常用布局实战与对比:LinearLayout、RelativeLayout、TableLayout 与自定义 NeonLamp

0 阅读3分钟

在 Android 开发中,布局(Layout)是构建界面的核心基础,不同布局的特性决定了界面的组织方式和适配能力。本文将结合四个实战项目,详细解析 LinearLayout、RelativeLayout、TableLayout 三种系统布局,以及一个自定义布局 NeonLamp,通过实际运行效果对比它们的使用场景与核心特性。


一、LinearLayout:线性布局,线性排列的基础布局

核心特性

LinearLayout 是最基础的布局,它将子控件按照 水平(horizontal)垂直(vertical) 方向线性排列,子控件之间不会重叠,是 Android 入门首选布局。

关键属性

  • android:orientation:指定排列方向,horizontal 为水平,vertical 为垂直。
  • android:layout_weight:用于分配剩余空间,实现按比例布局。
  • android:gravity:控制子控件在布局内的对齐方式。

项目运行效果

ea9009018910724a508ec44f752ce938.png

二、RelativeLayout:相对布局,灵活定位的高级布局

核心特性

RelativeLayout 允许子控件 相对于父布局或其他兄弟控件 进行定位,无需依赖线性方向,适合复杂、灵活的界面结构,能有效减少布局嵌套层级。

关键属性

  • 相对于父布局:layout_alignParentToplayout_centerInParent 等。
  • 相对于兄弟控件:layout_toRightOflayout_belowlayout_alignLeft 等。

项目运行效果

1b9f271fa58e64ecf0930342fc721eef.png

三、TableLayout:表格布局,规整的网格布局

核心特性

TableLayout 以 行(TableRow) 的形式组织子控件,适合需要规整表格结构的界面,如表单、数据列表等。它会自动根据内容或设置分配列宽。

关键属性

  • android:stretchColumns:指定需要拉伸填充剩余空间的列。
  • android:shrinkColumns:指定需要收缩以适应屏幕的列。
  • android:collapseColumns:指定需要隐藏的列。

项目运行效果

6fe0ae5de18a40357498ab15bfbb7756.png

四、NeonLamp:自定义布局,实现特殊视觉效果

核心特性

NeonLamp 是一个 自定义 ViewGroup/View,并非系统原生布局,它通过重写 onMeasure()onLayout() 方法,实现了类似霓虹灯闪烁的特殊布局 / 控件效果,适合需要高度定制化 UI 的场景。

项目运行效果

55e56caa28be22b8f6f3395116031588.png

核心实现思路

  1. 继承 View/ViewGroup:如果是布局则继承 ViewGroup,如果是控件则继承 View
  2. 重写 onMeasure () :测量自身及子控件的尺寸。
  3. 重写 onLayout () :确定子控件的位置。
  4. 重写 onDraw () :绘制霓虹发光效果(使用 Paint 设置发光滤镜、渐变等)。
  5. 动画处理:通过 ValueAnimator 实现灯光闪烁、颜色变化等动画。

五、四大布局对比与使用场景

924cc20f23cb3af6b0c63f50b6e9218e.png

六、总结

  • LinearLayout:入门首选,适合线性结构,简单高效。
  • RelativeLayout:复杂界面的利器,通过相对定位减少嵌套。
  • TableLayout:表单与数据展示的最佳选择,规整清晰。
  • 自定义布局(如 NeonLamp) :满足特殊视觉与交互需求,是高级开发的必经之路。

在实际开发中,我们可以根据界面需求组合使用这些布局,甚至结合 ConstraintLayout(现代 Android 推荐布局)来进一步优化性能与可读性。