Android资源类型列举及四种常用的布局资源详细介绍

一、Android资源类型列举

资源目录 存放内容
res/anim/ 补间动画(XML),如平移、缩放、旋转、透明度
res/animator/ 属性动画(XML)
res/color/ 颜色状态选择器(如按钮不同状态的颜色)
res/drawable/ 图片、形状、图层、状态列表等可绘制资源
res/layout/ 布局资源,定义界面结构
res/menu/ 菜单资源(选项菜单、上下文菜单等)
res/mipmap/ 应用图标,不同分辨率存放不同文件夹(mipmap-hdpi等)
res/raw/ 原始文件(如音频、视频),通过R.raw.filename访问
res/values/ 简单值:strings.xmlcolors.xmldimens.xmlstyles.xmlarrays.xml
res/xml/ 任意自定义XML文件,通过@xml/filenameResources.getXML()获取
res/font/ 字体文件(.ttf.otf),支持可下载字体

二、布局资源四种常用类型

布局资源位于 res/layout/ 下,用于定义Activity、Fragment、列表项等UI结构。四种最常用的布局类型如下:

1. LinearLayout(线性布局)

按水平或垂直方向依次排列子视图。

  • 特点

    • 通过 android:orientation 指定 horizontalvertical
    • 支持 layout_weight 按比例分配剩余空间
    • 嵌套过多会影响性能(可用ConstraintLayout优化)
  • 适用场景

    简单排列的表单、工具栏、纵向列表结构

xml 复制代码
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <TextView ... />
    <Button ... />
</LinearLayout>

2. RelativeLayout(相对布局)

子视图通过与其他视图或父容器的相对位置进行定位。

  • 特点

    • 属性如 layout_toLeftOflayout_belowlayout_alignParentTop
    • 减少布局嵌套,但约束表达不如 ConstraintLayout 直观
  • 适用场景

    避免多层嵌套,实现简单相对位置布局

xml 复制代码
<RelativeLayout ...>
    <TextView
        android:id="@+id/title"
        ... />
    <Button
        android:layout_below="@id/title"
        android:layout_alignParentRight="true"
        ... />
</RelativeLayout>

3. ConstraintLayout(约束布局)

通过约束关系定义视图位置,是 Android 官方推荐的灵活布局方式。

  • 特点

    • 几乎可以完全扁平化布局,避免嵌套
    • 支持 alayout_constraint* 系列属性,配合 GuidelineBarrier 等辅助组件
    • 与布局编辑器配合良好,可拖拽生成约束
  • 适用场景

    几乎所有复杂界面,尤其适合减少布局层级、提高性能

xml 复制代码
<androidx.constraintlayout.widget.ConstraintLayout ...>
    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        alayout_constraintLeft_toLeftOf="parent"
        alayout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

4. FrameLayout(帧布局)

所有子视图默认堆叠 在左上角,可通过 layout_gravity 控制位置。

  • 特点

    • 结构最简单,通常只放一个子视图
    • 常用于 Fragment 容器 或叠加效果(如进度条浮于内容之上)
  • 适用场景

    Fragment 占位、单视图显示、浮层效果

xml 复制代码
<FrameLayout ...>
    <ImageView ... />
    <ProgressBar
        android:layout_gravity="center" ... />
</FrameLayout>

三、总结

布局类型 核心特点 常见场景
LinearLayout 线性排列、权重分配 简单列表、表单
RelativeLayout 相对定位 避免多层嵌套的简单界面
ConstraintLayout 灵活约束、扁平化 复杂界面,推荐首选
FrameLayout 堆叠、简单容器 Fragment容器、浮层

在 Android 开发中,ConstraintLayout 已成为主流选择,配合布局编辑器能大幅提升效率和布局性能。

相关推荐
触底反弹6 小时前
🔥 2026 大模型选择指南:别再只看 Benchmark 了,这些维度才是关键!
人工智能·面试
醇氧8 小时前
CountDownLatch / CyclicBarrier / Semaphore 面试高频问答清单
前端·面试·职场和发展
黄敬峰11 小时前
从零搞懂 useState 与 Fragment:React 函数式组件的基石
面试
Android研究员15 小时前
Android进阶之事件分发机制深度剖析
android·前端·面试
触底反弹15 小时前
🔥 AI 写代码总翻车?这套实战方法论救了我
人工智能·面试·程序员
风栖柳白杨15 小时前
【面试】AI算法工程师_空白自测版本
人工智能·算法·面试
风栖柳白杨18 小时前
【面试】职位要求_准备
面试·职场和发展
Assby19 小时前
为什么我不建议你在 MySQL 里写 `IN (超过1000个ID)`?从 AST 解析到存储引擎的深度拆解
后端·面试
触底反弹1 天前
🚀 从 DOM0 级到 React 合成事件:前端事件监听的 20 年演进史
前端·react.js·面试
kyriewen1 天前
我给前端项目的接口请求套了6层保护——才发现以前一直在裸奔
前端·javascript·面试