android资源类型和其中布局资源的四种常用类型

8 阅读4分钟

Android 资源类型完整清单 + 布局资源 4 种常用类型详解

Android 资源(Resources)是非代码形式的静态内容(图片、文字、布局、样式等),统一放在 res/ 目录下,按类型分文件夹管理,方便国际化、多设备适配和代码解耦。

一、Android 全资源类型完整列举

Android 官方定义的标准资源类型共 16 种,对应 res/ 下的标准文件夹,作用和用途如下:

表格

资源文件夹资源类型核心用途
res/drawable/图片 / 矢量资源存放位图(png/jpg)、矢量图(xml)、形状 Drawable
res/layout/布局资源定义界面的控件排列、层级结构
res/values/值资源字符串、颜色、尺寸、样式、数组、整数等
res/mipmap/启动图标专用于 APP 启动图标(适配不同屏幕密度)
res/anim/帧动画逐帧播放的动画资源
res/animator/属性动画3.0+ 推荐的属性动画(平移、缩放、旋转等)
res/color/颜色状态列表按钮按下 / 选中 / 禁用的颜色切换
res/dimen/尺寸资源统一管理间距、字体大小、控件宽高
res/font/字体资源自定义 TTF/OTF 字体
res/raw/原始文件存放音频、视频、文本等原生文件(不编译)
res/xml/自定义 XML配置文件、数据解析、自定义功能资源
res/menu/菜单资源选项菜单、上下文菜单、弹出菜单
res/interpolator/插值器控制动画速度变化(匀速、加速、回弹等)
res/transition/过渡动画Activity/Fragment 切换的过渡效果
res/navigation/导航资源Jetpack Navigation 组件的页面路由
res/assets/原生资源非编译原生资源(无固定结构,可自定义目录)

二、布局资源(Layout)4 种常用类型详解

布局资源 是 Android 开发最核心的资源,作用是定义界面中所有控件(TextView/Button/ImageView 等)的位置、大小、层级关系,文件格式为 .xml,存放在 res/layout/ 目录下。

Android 布局的核心设计思想:容器(布局)+ 子控件,通过嵌套实现复杂界面。

1. LinearLayout(线性布局)

核心特性
  • 最基础、最常用的布局,子控件按「水平 / 垂直」方向线性排列
  • 自带权重(layout_weight)属性,完美实现等比例划分屏幕
  • 优点:简单易用、性能高;缺点:复杂嵌套时效率低
关键属性
  1. android:orientation:排列方向

    • vertical:垂直排列(从上到下)
    • horizontal:水平排列(从左到右)
  2. android:layout_weight:权重(仅线性布局支持)

    • 按比例分配剩余空间,实现自适应布局
  3. android:gravity:子控件对齐方式

2. RelativeLayout(相对布局)

核心特性
  • 子控件以「相对位置」排列(相对于父布局、相对于其他控件)
  • 无需嵌套,一个布局就能实现复杂界面
  • 优点:灵活、减少布局嵌套;缺点:属性多、逻辑稍复杂
关键属性
  1. 相对于父布局

    • android:layout_centerInParent:居中
    • android:layout_alignParentTop:顶部对齐
    • android:layout_alignParentRight:右侧对齐
  2. 相对于其他控件(需指定控件 id)

    • android:layout_below:在某控件下方
    • android:layout_toRightOf:在某控件右侧
    • android:layout_alignTop:与某控件顶部对齐

3. ConstraintLayout(约束布局)

核心特性
  • Android 官方推荐的首选布局(替代所有嵌套布局)
  • 基于约束条件定位控件(上下左右对齐、居中、比例、链状布局)
  • 优点:零嵌套实现复杂界面、性能极高、支持可视化拖拽编辑
  • 适用于:所有商业项目、复杂 UI 界面
关键属性
  1. 基础约束(必须设置,否则控件会重叠在左上角)

    • app:layout_constraintTop_toTopOf:顶部对齐
    • app:layout_constraintBottom_toBottomOf:底部对齐
    • app:layout_constraintStart_toStartOf:左侧对齐
    • app:layout_constraintEnd_toEndOf:右侧对齐
  2. 高级功能

    • 比例布局:app:layout_constraintDimensionRatio
    • 链布局:多个控件平均分布
    • 辅助线(Guideline):快速对齐

4. FrameLayout(帧布局)

核心特性
  • 最简单的布局,所有子控件默认叠加在左上角
  • 后添加的控件会覆盖在先添加的控件之上(层级关系)
  • 优点:性能最高、轻量;缺点:仅适合叠加场景
常用场景
  • Fragment 容器
  • 图片叠加文字(如头像右上角未读消息)
  • 加载动画、遮罩层
关键属性
  • android:gravity:控制子控件的对齐方式(居中、底部等)

三、4 种常用布局对比总结

表格

布局名称排列方式核心优势最佳使用场景
LinearLayout水平 / 垂直线性简单、权重适配表单、列表、等比例控件
RelativeLayout相对位置灵活、少嵌套中等复杂度 UI
ConstraintLayout约束定位零嵌套、高性能、官方首选所有项目、复杂 UI
FrameLayout叠加层叠性能最高、极简容器、叠加控件、Fragment

开发建议:日常开发优先使用 ConstraintLayout,简单线性排列用 LinearLayout,叠加效果用 FrameLayout。

总结

  1. Android 标准资源共 16 种,核心是 layout(布局)、drawable(图片)、values(值)、mipmap(图标);
  2. 布局资源是界面骨架,4 种常用类型:线性、相对、约束、帧布局;
  3. ConstraintLayout 是现代 Android 开发首选布局,能大幅优化界面性能和开发效率。