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.xml、colors.xml、dimens.xml、styles.xml、arrays.xml等
res/xml/ 任意自定义XML文件,通过@xml/filename或Resources.getXML()获取
res/font/ 字体文件(.ttf、.otf),支持可下载字体

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

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

1. LinearLayout(线性布局)

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

  • 特点

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

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

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

2. RelativeLayout(相对布局)

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

  • 特点

    • 属性如 layout_toLeftOf、layout_below、layout_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* 系列属性,配合 Guideline、Barrier 等辅助组件
    • 与布局编辑器配合良好,可拖拽生成约束
  • 适用场景

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

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

相关推荐
晨米酱4 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
CoderYanger4 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
爱学习的执念4 天前
助力金九银十1000道软件测试面试题(功能、接口、自动化、WEB、APP.......)附答案
软件测试·面试
小的~~4 天前
银河麒麟V10 ARM部署TDengine(涛思)工业时序数据库安装与测试
面试·程序员创富
小刘在重生~4 天前
Oracle_day2 单行函数|组函数|分组|伪列|子查询|分页|多表连接
笔记·oracle·面试
Sam_Deep_Thinking4 天前
关于java final关键字的可见性
java·后端·面试·程序员
Rain的Java大神之路5 天前
如何快速上传10G文件
java·spring boot·redis·后端·mysql·spring cloud·面试
淡海水5 天前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
小刘在重生~5 天前
Java Lock 显式锁案例|ReentrantLock 解决多线程安全问题(超详细实战)
java·笔记·面试