Android资源类型,布局资源的四种常用类型

7 阅读4分钟

一、Android六大核心资源类型总结

在Android开发中,资源主要存放在res/目录下,通过将U川定义与代码逻辑分离,实现更好的维护性。

1、图片资源(Drawable/Mipmap):

  • Drawable:包含位图(PNG、JPG、WEBP)和XML定义的图形(如形状Shape、矢量图Vector)。

  • Mipmap:专门用于存放应用启动图标(Icon),系统会根据屏幕密度自动选择最佳分辨率。

  • 另外:调用图片资源文件,有两种调用方式,一种是通过Java代码调用,另一种是在XML布局文件中的调用.

(1)通过Java代码调用图片资源文件
  • 在Activity中可以通过getResources().getDrawable()方法调用(较为麻烦)
(2)在XML布局文件中调用图片资源文件
@mipmap/ic_launch //调用名称以mipmap开头的文件夹中的图片资源文件
@drawable/icon //调用名称以drawable开头的文件夹中的图片资源文件

2、布局资源(Layout):

  • 存储在res/layout/目录下,是XML格式的文件.它定义了界面的结构、控件的排列方式以及UI元素的属性.
  • 可通过Java代码来调用布局资源文件
在Activity中,找到onCreate()方法,在该方法中通过调用setContentView()方法来调用Activity对应地点布局资源文件,直接调用activity_main.xml文件
setContentView(R.layout.activity_main);
  • 在XML布局文件中调用布局资源文件
在XML布局文件中可通过< include >标签调用布局资源文件,,例如XML布局文件中activity_main.xml文件
< include layout="@layout/activity_main/" >

3、主题与样式资源(Theme/style):

  • 通常定义在res/values/themes.xml或styles.xml中
  • Style用于定义单个控件的属性集合(如按钮的字体、颜色);Theme则是应用于整个Activity或Application的全局样式。

4、字符串资源(String):

  • 定义在res/values/strings.xml中。
  • 用于存储应用中的所有文本文字。这样做便于实现多语言国际化(不同语言只需提供不同的strings.xml)。

5、颜色资源(Color):

  • 定义在res/values/colors.xml中。
  • 使用十六进制颜色代码(如#FF0000表示红色),方便在全项目内统一管理色调。

5、尺寸资源(Dimension):

  • 定义在res/values/dimens.xml中。
  • 用于定义控件的大小、间距(dp)或文字大小(sp),确保应用在不同分辨率的屏幕上具有一致的视觉比例。

二、四种常用布局资源

1、线性布局(LinearLayout):

这是最简单、最常用的布局。它将其中的子控件按照水平或垂直方向依次排列。

  • 核心属性:Android:orientation。设为vertial时控件从上往下排,设为horizontal时从左往右排
  • 权重(Weight):允许子控件按比例瓜分父容器的剩余空间。例如,可以用权重实现两个按钮各占屏幕宽度的50%。

2、相对布局(RelativeLayout):

它通过指定控件相对于父容器或兄弟控件的位置来进行对齐。

  • 相对于父容器:如layout_centerInParent(居中)、layout_alignParentBottom(贴紧底部)。
  • 相对于兄弟控件:如layout_below(在某个控件下方)、layout_toRight0f(在某个控件右侧)。
  • 优点:能够灵活地摆放控件位置,减少布局嵌套层级,提升渲染效率。

3、帧布局(FrameLayout):

帧布局是最简单的布局容器,它像一叠洗好的扑克牌。

  • 层叠特性:默认情况下,所有控件都堆叠在左上角。后定义的控件会覆盖在先定义上。
  • 引力控制:通过android:layout_gravity可以控制控件在容器内的对齐方式(如居中、右上角等)。
  • 场景:常用作Fragment的占位符,或者在图片上叠加一层文字/进度条。

4、表格布局(TableLayout):

表格布局以行和列的形式管理控件,类似于网页开发中的< table >。

  • 行列结构:每一行通常由一个< TableRow >:标签表示,行中的控件就是列。
  • 特殊功能:
    • stretchColumns:设置某些列为"可拉伸",使其填满屏幕剩余宽度。
    • shrinkColumns:设置某些列为"可收缩",防止内容溢出屏幕。
    • collapseColumns:可以隐藏指定的列。
  • 场景:适用于展示类似报表、设置菜单或对齐要求非常严格的录入表单。