一、Android 全资源类型分类
Android 资源统一放在 res/ 目录下,按功能分为11大类核心资源:
-
布局资源
-
图片 / 矢量资源
-
应用图标资源
-
值资源
-
菜单资源
-
补间动画资源
-
属性动画资源
-
原生文件资源
-
自定义 XML 资源
-
字体资源
-
颜色状态资源
二、布局资源 4 种最常用类型
1. LinearLayout(线性布局)
定义:最基础的布局,将子控件按水平 / 垂直方向线性排列,像排队一样。核心属性:
-
android:orientation:排列方向vertical:垂直排列(从上到下)horizontal:水平排列(从左到右)
-
android:gravity:子控件在布局内的对齐方式(居中、靠左、靠右等) -
android:layout_weight:权重(按比例分配剩余空间,适配神器)
适用场景:简单的线性界面(登录表单、列表项、垂直 / 水平排列的控件)。
优点:简单易用、性能高;缺点:复杂界面嵌套过多会降低性能。
2. RelativeLayout(相对布局)
定义:以其他控件或父容器为参照定位子控件,灵活实现复杂位置关系。核心属性(分两类):
-
相对于父容器
android:layout_centerInParent:居中android:layout_alignParentTop:置顶android:layout_alignParentRight:靠右
-
相对于其他控件
android:layout_below="@id/xxx":在某控件下方android:layout_toRightOf="@id/xxx":在某控件右侧android:layout_alignTop="@id/xxx":与某控件顶部对齐
适用场景:控件位置有相对关系的界面(个人中心、详情页)。
优点:灵活,减少布局嵌套;缺点:复杂层级性能略低
3. ConstraintLayout(约束布局)
定义:Google 官方推荐的首选布局,通过约束关系定位控件,支持扁平化嵌套(无多层嵌套),性能最强、适配最优。核心概念:每个控件必须至少定义水平 + 垂直两个约束(类似相对布局的增强版)。核心约束属性:
app:layout_constraintTop_toTopOf:顶部与某控件顶部对齐app:layout_constraintBottom_toBottomOf:底部对齐app:layout_constraintStart_toStartOf:左侧对齐app:layout_constraintEnd_toEndOf:右侧对齐app:layout_constraintHorizontal_bias:水平偏移比例app:layout_constraintVertical_bias:垂直偏移比例
适用场景:所有复杂 / 简单界面
优点:扁平化无嵌套、性能极高、可视化编辑友好、完美适配多设备;缺点:新手需要学习约束逻辑。
4. FrameLayout(帧布局)
定义:最简单的布局,所有子控件叠加在左上角(后添加的控件覆盖前面的),像画框一样层叠显示。核心属性:
android:gravity:控制控件在布局内的对齐方式(居中、右下角等)- 无复杂定位,仅支持层叠 + 对齐
适用场景:
- 碎片(Fragment)容器;
- 图片叠加文字(头像 + 角标);
- 加载动画遮罩层。
优点:性能最高、结构最简单;缺点:仅支持层叠,无法复杂定位。