AWTK 的资源系统
一,前序
上一篇文章中讲到 AWTK 的 XML 编写 UI (AWTK 开发 UI 简单入门—XML 篇),同时引入了通过 AWTK 的工具生成对应的资源的简单用法,在这一篇章中,将会为大家介绍一下 AWTK 的资源系统以及其中生成资源的工具,其中主要是分析和用法为主。
其实 2019 年过年前 zlg 推出了一个 AWTK Designer界面设计器,目前该软件只支持可视化设计 UI 以及生成对应的 XML 资源,界面和效果大概和 Blend for Visual Studio 差不多,有兴趣的朋友们可以去 zlg 的官网或者度娘了解一下。
二,AWTK 的资源目录分析
接下来打开 AWTK 的源码中的 demo 文件夹的 assets 目录( awtk\demos\assets 目录),该 assets 目录就是一般存放 AWTK 的所有资源,如下图。
备注:该目录下有两个主题,分别为 default 和 dark。
1. AWTK 的主题资源
在 AWTK 中可以通过调用 widget_set_theme 函数来设置 AWTK 使用哪一个主题,其中该widget_set_theme 函数设置的主题名字就是 assets 目录下的文件夹名字(默认会存在一个名字为 default 的文件夹),所以在 assets 目录下默认会有一个 default 文件夹,用来表示 default 主题的资源存放在该目录下。
/**
* @method widget_set_theme
* 设置theme的名称,用于动态切换主题。名称与当前主题名称相同,则重新加载全部资源。
*
* > 目前只支持带有文件系统的平台。
*
* @annotation ["scriptable"]
* @param {widget_t*} widget 控件对象。
* @param {char*} name 主题的名称。
*
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
*/
ret_t widget_set_theme(widget_t* widget, const char* name);
备注:如果切换的主题不存在的时候,就会默认切换为 default 主题
2. AWTK 的资源存放
接下来我们打开 default 主题的文件夹,一般会存在两个文件夹,分别是 raw 和 inc 文件夹,raw 文件夹下存放 AWTK 的本地加载资源,inc 文件夹下存放 AWTK 的嵌入的资源。
其中 raw 文件夹和 inc 文件夹中的目录结构一般都是一模一样的,一般来说都是使用 raw 文件夹中的资源,通过 AWTK 提供的工具把 inc 文件夹中的资源生成出来,在 AWTK 源码项目中的资源都是采用 AWTK 的资源生成脚本(.\awtk\scripts\update_res.py)生成 inc 文件夹目录。
备注:如果使用 AWTK 的本地加载资源的话,就必须在支持文件系统的平台上面运行。
接下来我们打开 raw 文件夹,如下图和表格:
文件夹 | 资源名称 | 备注 |
---|---|---|
data | 二进制资源和其他资源 | 这个文件夹基本上可以存放任何的资源,但是解析资源的工作就交给用户来做。 |