一、Android 资源类型全盘点
Android 工程的 res 目录是资源管理的核心,常见资源类型如下:
| 资源类型 | 存放目录 | 核心用途 |
|---|---|---|
| 布局资源 | res/layout/ | 定义界面结构与控件排列,如 activity_main.xml,是 UI 开发的基础 |
| 图片资源 | res/drawable/ | 存放图标、背景图等,支持矢量图与位图;mipmap/ 目录专用于应用图标多密度适配 |
| 字符串资源 | res/values/strings.xml | 统一管理文本内容,支持多语言切换,避免硬编码字符串 |
| 颜色资源 | res/values/colors.xml | 定义全局颜色值,便于主题切换与复用,保证界面配色一致性 |
| 尺寸资源 | res/values/dimens.xml | 定义控件大小、边距等,适配不同屏幕密度,避免布局错乱 |
| 样式资源 | res/values/styles.xml | 定义控件外观与主题,如文字大小、背景色、圆角等,实现样式复用 |
| 菜单资源 | res/menu/ | 定义应用菜单、上下文菜单等(为高频使用类型) |
| 动画资源 | res/anim//res/animator/ | 定义视图动画、属性动画,提升界面交互体验 |
这些资源共同构成了 Android 应用的视觉与交互基础,其中布局资源是构建界面的核心骨架,也是我们接下来重点解析的部分。
二、4 种常用布局深度解析
1. LinearLayout:线性布局 —— 最基础的「排队」布局
核心特性:按水平(horizontal)或垂直(vertical)方向依次排列子控件,像排队一样规整。
关键属性: android:orientation:指定布局方向,horizontal 为水平,vertical 为垂直。 android:layout_weight:按比例分配剩余空间,实现「权重分配」的自适应效果。
适用场景:简单的线性排列界面,如登录表单、按钮组、列表项等。
示例:图中水平排列的「按钮 1、按钮 2、按钮 3」,就是典型的水平 LinearLayout 用法,控件按顺序从左到右依次展示。
2. RelativeLayout:相对布局 —— 灵活的「定位」布局
核心特性:子控件通过相对位置(相对于父容器或其他控件)进行定位,自由度极高。
关键属性: 相对于父容器:android:layout_alignParentTop(贴父容器顶部)、android:layout_centerInParent(居中于父容器)等。 相对于其他控件:android:layout_below(在某控件下方)、android:layout_toRightOf(在某控件右侧)等。
适用场景:复杂的不规则界面,控件之间有明确的相对位置依赖。
示例:图中「按钮 1、按钮 2、按钮 3」分别位于左下角、中间、右上角,正是通过相对定位实现的灵活布局。
3. TableLayout:表格布局 —— 规整的「表格」布局
核心特性:以行和列的形式排列子控件,类似 HTML 表格,由 TableRow 定义每一行。
关键属性: android:stretchColumns:指定可拉伸的列,自动填充剩余宽度。
android:shrinkColumns:指定可收缩的列,防止内容溢出屏幕。
适用场景:需要规整表格形式的界面,如计算器、数据报表、设置项列表等。
示例:图中按钮按 2 行 3 列的表格形式排列,第一行 2 个按钮,第二行 3 个按钮,完美体现了表格布局的规整性。
4. ConstraintLayout:约束布局 —— 现代「万能」布局
核心特性:通过约束关系(如上下左右对齐、比例、间距)定位控件,可替代 LinearLayout + RelativeLayout 组合,大幅减少布局嵌套。
关键属性: app:layout_constraintLeft_toRightOf:控件左边对齐到另一控件右边。 app:layout_constraintVertical_bias:垂直方向偏移比例,实现精准定位。 app:layout_constraintDimensionRatio:设置宽高比,适配不同屏幕。
适用场景:几乎所有复杂界面,从简单的登录页到复杂的详情页都能高效实现。
优势:相比其他布局,ConstraintLayout 性能更好,调试更直观。
一句话总结:
简单界面用 LinearLayout,快速高效;
复杂相对定位用 RelativeLayout(或直接用 ConstraintLayout 替代);
表格数据用 TableLayout;
现代开发首选 ConstraintLayout,一劳永逸解决大部分布局问题。
三、最后
Android 资源体系是 UI 开发的基础,而布局资源则是构建界面的「骨架」。通过这 4 种经典布局的学习,你已经能应对绝大多数界面开发场景。