程序中资源文件的使用

在安卓App开发中,资源文件通常是指App运行时所需的各种非代码数据的集合。这些资源包括图像、字符串、布局文件、动画、音频、视频等。通过将这些资源集中管理,开发者可以轻松实现多语言支持、适配不同屏幕尺寸和密度、分离 UI 和逻辑等功能。

在轻语言安卓App中,资源主要分为两大类,分别为:仓库(assets)、资源(res),两种资源不同分工,共同组成了App资源集合系统。

仓库(assets)

仓库(assets)是一个特殊的文件夹,用于存放打包时不会进行编译的原始文件资源。其特点为:

  • 不会生成 R 类条目。
  • 该文件夹中的文件不会被编译,直接以原始形式存储。
  • 不支持资源限定符。
  • 适合存放较大的静态文件(如图片、HTML、CSS、JS 文件、数据库文件等)。

在代码中使用

仓库文件夹中的文件在代码中使用时,均通过文件名以字符串形式使用。

编辑框1.内容 = 读仓库文本("json.txt","UTF-8")
按钮1.背景图片 = "img1.png"

资源(res)

资源(res)是 Android 项目中存放资源的主要目录,所有资源都必须遵循特定的子目录结构,并且可以通过 R 类访问。

子目录结构

  • layout:存放 XML 文件,用于定义用户界面布局。
  • drawable:存放图像资源(如 PNG、JPEG、SVG 等)或可绘制对象(如 XML 定义的形状、层列表等)。
  • mipmap:专门用于存放应用图标(如 launcher icons),确保不同密度屏幕上的显示效果。
  • values:存放各种类型的值资源,如字符串 (strings.xml)、颜色 (colors.xml)、维度 (dimens.xml)、样式 (styles.xml) 和主题 (themes.xml)。
  • raw:存放原始文件资源(如音频、视频等),这些文件不会被编译为二进制格式。
  • xml:存放其他 XML 配置文件(如配置文件、动画定义等)。
  • anim:存放动画资源文件。
  • menu:存放菜单资源文件。
  • navigation:存放导航组件相关的 XML 文件。
  • font:存放字体资源。

特点

  • 资源会被编译并生成对应的 R 类条目。
  • 支持资源限定符(如屏幕密度、语言、方向等),便于实现多语言支持和适配不同设备。

在代码中使用

资源文件中的文件在代码中使用时,均以 R. 开头使用,且一般多数场景为需要设置整数型图片资源ID的地方:

按钮1.背景资源 = R.logo

资源(res) 和 仓库(assets) 的主要区别

特性res 文件夹assets 文件夹
编译方式资源会被编译并生成 R 类条目文件保持原始状态,不生成 R 条目
访问方式通过 R 类访问通过 内置函数 访问
资源限定符支持支持(如屏幕密度、语言等)不支持
适用存放小型资源文件(如图片、字符串、颜色等)大型静态文件(如数据库、HTML 文件等)
性能编译后加载更快原始文件需要手动处理,可能稍慢
使用方式及场景在需要R资源索引ID的地方使用 R. 调用在需要读取仓库文件、或以字符串文本形式调用文件名称时