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 已成为主流选择,配合布局编辑器能大幅提升效率和布局性能。

相关推荐
重铸码农荣光2 小时前
手写一个精简版 Zustand:深入理解 React 状态管理的核心原理
react.js·面试·源码
本末倒置1832 小时前
告别"话痨"提交记录!Git 压缩 Commit 实战指南,代码洁癖党狂喜
面试·程序员·代码规范
我叫黑大帅3 小时前
🚀 JS 最常用的性能优化 防抖和节流
前端·javascript·面试
我叫黑大帅3 小时前
JS中的两大定时器
前端·javascript·面试
掘金安东尼3 小时前
⏰前端周刊第 458 期v2026.3.24
前端·javascript·面试
闻哥4 小时前
MySQL InnoDB 缓存池(Buffer Pool)详解:原理、结构与链表管理
java·数据结构·数据库·mysql·链表·缓存·面试
张元清4 小时前
useMediaQuery:React 响应式设计完全指南
前端·javascript·面试
小金鱼Y4 小时前
一文吃透 JavaScript 防抖:从原理到实战,让你的页面不再 “手抖”
前端·javascript·面试
程序员库里5 小时前
AI协同写作应用-TipTap基础功能
前端·javascript·面试