Android开发必备:资源管理攻略

0 阅读5分钟

在Android应用程序中,资源指的是那些可以在代码中被引用的外部文件。这些文件作为程序不可或缺的一部分,会被编译进最终的软件包中。资源通常保存在res文件夹下。

接下来我们来介绍一下相关的资源(在程序中调用这些资源文件时,有两种常见方式:其一是通过Java代码进行调用,其二则是在XML布局文件中进行引用。):

图片资源: 是移动应用开发中不可或缺的一部分,主要包括扩展名为.jpg、.gif和.png的文件。根据其用途,图片资源可以被分为应用图标资源和界面中使用的图片资源两大类。应用图标通常被存放在以“mipmap”开头的文件夹中,而界面中使用的图片资源则存放在以“drawable”开头的文件夹中。这种分类和存放方式有助于开发者在开发过程中快速定位和调用所需的图片资源,从而提高开发效率和应用的性能表现。

主题和样式资源:

  • 主题: 主题资源包含了一系列格式化属性的集合,当在程序中被调用时,可以改变窗体的样式,并且会对整个应用程序或特定的Activity产生全局性的影响。这些主题资源被定义在res/values目录中的styles.xml文件中
  • 样式: 为了提升控件的视觉效果,我们需要在项目的res/values目录下创建一个名为styles.xml的文件。若该文件尚未存在,你可以手动创建它。在弹出的快捷菜单中,选择“New”→“XML”→“Values XML File”选项,随后会弹出“New Android Component”对话框,在此处将样式文件命名为styles。这个文件将包含各种美化控件所需的样式定义。

字符串资源: 为了方便管理和使用那些使用频率极高的资源,通常会将它们定义在项目的资源目录中。具体来说,字符串资源常常被放置在res/values目录下的strings.xml文件中,这样做不仅有助于保持代码的整洁,还能提高资源利用的效率。通过这种方式,开发者可以更加便捷地对应用程序中的文本进行统一管理和维护。

颜色资源: View控件的默认色彩通常无法完全满足设计上的多样需求,因而开发者往往会借助颜色资源来对View控件的色彩进行自定义修改。这些颜色资源一般被定义在res/values/colors.xml文件中,以便统一管理和灵活使用。

尺寸资源: 在Android界面中,View控件的宽度、高度和View控件的间距值是通过尺寸资源设置的,通常定义在res/values/dimens.xml文件中。

布局资源: 在创建Android程序之初,系统会自动在res/layout文件夹内生成一个名为activity_main.xml的布局资源文件(此文件名可根据需求进行修改),此外,开发者也可以在该文件夹中创建其他的布局资源文件。接下来介绍四种常用类型:

线性布局(LinearLayout)是一种常用于排列控件的布局方式,控件可以水平或垂直排列。除了具备布局的一些通用属性外,还有以下两个较为常用的属性:

android:orientation: 用来设置控件的排列顺序,其值可选为vertical(上至下依次垂直排列)和horizontal(从左至右依次水平排列)。

android:layout_weight: 通过设置权重属性值,我们可以让布局中的控件按照特定的比例显示其大小,这在屏幕适配过程中扮演着至关重要的角色,确保界面在不同屏幕尺寸上都能呈现出理想的效果。

相对布局(RelativeLayout)以父容器或其他的子控件为参照物,通过相对定位的方式指定子控件的位置。部分重要子控件的属性如下表所示。

属性名称核心作用
layout_centerInParent在父布局中完全居中(最常用)
layout_below放在指定控件下方
layout_above放在指定控件上方
layout_toRightOf放在指定控件右侧
layout_toLeftOf放在指定控件左侧
layout_alignParentBottom贴父布局底部
layout_alignParentTop贴父布局顶部

表格布局(TableLayout)采用行、列管理控件,无需明确行列数,通过添加 TableRow 或控件控制行数、列数。它继承自 LinearLayout,支持其所有属性,还有其他常用属性。

属性名称功能描述
android:stretchColumns设置可拉伸的列,如 android:stretchColumns="0",表示第 1 列可拉伸
android:shrinkColumns设置可收缩的列,如 android:shrinkColumns="1,2",表示第 2 列、第 3 列可收缩
android:collapseColumns设置可隐藏的列,如 android:collapseColumns="0",表示第 1 列可隐藏

TableLayout 中控件的常用属性如下:

属性名称功能描述
android:layout_column设置该控件显示的位置,如 android:layout_column="1",表示在第 2 个位置显示
android:layout_span设置该控件占据的列数,默认为 1 列

需要注意的是,在TableLayout中,列的宽度由该列中最宽的单元格(控件)决定,整个TableLayout的宽度则取决于父容器的宽度。

帧布局(FrameLayout)在屏幕上创建一个空白区域。在这个区域内,每个子控件都被放置在一帧中。这些帧会逐个叠加,后放置的控件将覆盖在先放置的控件之上。默认情况下,所有控件都会与布局的左上角对齐。

除了通用属性外,其特殊属性如下:

属性名称功能描述
android:foreground设置 FrameLayout 容器的前景图像(始终在所有子控件之上)
android:foregroundGravity设置前景图像显示的位置

总结:掌握资源的分类管理以及常用布局的属性,是构建 Android 用户界面的基础。合理利用 res 目录下的资源文件,不仅能提高开发效率,还能显著提升代码的可维护性和应用的适配能力