程序中资源文件的使用
在安卓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. 调用 | 在需要读取仓库文件、或以字符串文本形式调用文件名称时 |