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

相关推荐
爱敲代码的小黄11 小时前
神经网络入门指南:从 CNN、RNN 到 Attention
人工智能·面试·程序员
brave102521 小时前
LLMGuide 大模型面试指南
人工智能·ai·面试·ai编程
Rain的Java大神之路1 天前
面试官最烦的答案:“我用 Redis + Token”!接口幂等 8 种方案 + 四层防御,把重复扣款工单干到 0
java·后端·面试
Moment1 天前
Harness Engineering 为什么是 AI Coding 的工程底座 ❓❓❓
前端·后端·面试
利威尔xu1 天前
2026-11-08-Go-defer-panic-recover面试
面试·golang
CoderYanger1 天前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
wo_jack2 天前
C++ 入门笔记(十六):第16课 vector 模拟实现十问十答 —— 从三指针到迭代器失效
c++·后端·面试·stl·vector
聪明的笨猪猪2 天前
AI应用架构选型:架构师的核心决策困境与权衡
经验分享·面试·架构
疯华整猫2 天前
被杀掉之后:我把 Android 的「唤起 + 常驻」重做了一遍
前端·面试·架构
nice_lcj5202 天前
Java 并发容器入门:ConcurrentHashMap、CopyOnWriteArrayList、阻塞队列
java·面试·并发编程·阻塞队列·concurrenthashmap·copyonwritearraylist