《5-brew资源文件的使用PPT优秀课件》由会员分享,可在线阅读,更多相关《5-brew资源文件的使用PPT优秀课件(22页珍藏版)》请在金锄头文库上搜索。
1、BREW资源文件的使用计算机系计算机系计算机科学与技术教研室计算机科学与技术教研室办公室:办公室:C117资源编辑器 BREW SDK中提供的资源编辑器可以将应中提供的资源编辑器可以将应用程序中使用的各种资源(包括字符串、图用程序中使用的各种资源(包括字符串、图片等)编译为资源文件,从而将应用程序的片等)编译为资源文件,从而将应用程序的源代码和具体资源分离开源代码和具体资源分离开Sun Bin 2009技术开发与应用资源编辑器资源编辑器BREW Resource EditoroBREW 资源编辑器允许您创建应用程序中使资源编辑器允许您创建应用程序中使用的用的对话框对话框、字符串字符串、二进制二
2、进制以及以及对象对象。o还可以使用资源编辑器创建控件,如:菜单、还可以使用资源编辑器创建控件,如:菜单、列表、日期选择器以及计时器等。列表、日期选择器以及计时器等。 o如果创建的应用程序需要使用不同语言在各种如果创建的应用程序需要使用不同语言在各种无线设备上运行,这些资源将十分有用。无线设备上运行,这些资源将十分有用。 Sun Bin 2009技术开发与应用BREW资源文件类型资源文件类型o源文件源文件 .brx n-是 XML 格式的中间文件。 在用作 BREW 资源编译器的输入以生成最终输出之前,可以使用资源编辑器对其进行编辑和保存。 n注意: 资源编辑器不要求此中间文件使用 BRX 扩展
3、名。 只要文件包含正确的 XML 格式有效数据,不管扩展名是什么,资源编辑器都能够对其进行解释。o资源文件资源文件 .barn 是由资源编译器作为最终输出的一部分生成的二进制文件。o资源文件头文件资源文件头文件 .brh n是由资源编译器作为最终输出的一部分生成的头文件。o资源编译器可以将资源编译器可以将 brx 文件编译为文件编译为 bar 文件和文件和 brh 文件,以用于最终应用程序。文件,以用于最终应用程序。 Sun Bin 2009技术开发与应用BREW资源编辑器的作用资源编辑器的作用o使用资源编辑器创建资源使用资源编辑器创建资源并保存成并保存成 .brx 文件文件o将将.brx文件
4、编译为文件编译为.bar和和.brh文件文件o在源程序在源程序.c中用中用include语句包含语句包含.brh文件文件o编译生成编译生成.dll文件文件o在模拟器中加载在模拟器中加载.dll运行过运行过程中,从程中,从.bar中加载资源中加载资源Sun Bin 2009技术开发与应用创建资源创建资源使用资源编辑器可以创建四种类型资源:使用资源编辑器可以创建四种类型资源:o字符串资源字符串资源o对象资源对象资源o二进制资源二进制资源o对话框资源对话框资源Sun Bin 2009技术开发与应用创建资源创建资源-字符串资源字符串资源对于字符串资源,需要输入标识、属性两类信息:对于字符串资源,需要输
5、入标识、属性两类信息:o标识:标识:nIDo资源编辑器将自动指定一个 1001 到 5000之间的数字; 但如果需要指定一个特定的 ID,您也可以更改它。 该 ID 必须是同一资源文件 (BRX) 内字符串资源中的唯一确定整数。n名称o为创建的资源输入一个唯一的名称。 系统也会自动制定一个名称:如字符串资源ID为1001,则字符串资源名为IDS_STRING_1001Sun Bin 2009技术开发与应用创建资源创建资源-字符串资源字符串资源对于字符串资源,需要输入标识、属性两类信息:对于字符串资源,需要输入标识、属性两类信息:o属性属性n来源为资源指定来源类型,包括Text、File、Hex
6、n数据根据资源来源类型,为资源指定数据值。n编码为资源选择编码格式n备注为资源输入备注信息,不会保存在.bar中o资源的各项信息输入之后,应点击资源的各项信息输入之后,应点击“应用应用”Sun Bin 2009技术开发与应用创建资源创建资源对象资源对象资源o对象资源可以是各种不同的格式或类型,但一对象资源可以是各种不同的格式或类型,但一定具有定具有 MIME 类型。类型。 o对象资源通常为图形图像。对象资源通常为图形图像。o对象资源的另一个常见用法是在应用程序资源对象资源的另一个常见用法是在应用程序资源中嵌入中嵌入 HTML 文件。文件。Sun Bin 2009技术开发与应用创建资源创建资源对
7、象资源对象资源对于对象资源,需要输入标识、属性等信息:对于对象资源,需要输入标识、属性等信息:o标识:标识:nIDo系统将自动指定一个 5001 到 6000之间的数字; 但如果需要指定一个特定的 ID,您也可以更改它。 该 ID 必须是同一资源文件 (BRX) 内字符串资源中的唯一确定整数。n名称o为创建的资源输入一个唯一的名称。 系统也会自动制定一个名称:如图片对象资源ID为5001,则该图片资源名为IDI_OBJECT_5001Sun Bin 2009技术开发与应用创建资源创建资源-对象资源对象资源属性属性n来源为资源指定来源类型,包括Text、File、Hexn数据根据资源来源类型,为
8、资源指定数据值。当来源为File时,为资源制定相应的文件n编码为资源选择编码格式n备注为资源输入备注信息,不会保存在.bar中o资源的预览信息资源的预览信息oMime 类型输入关联的类型输入关联的 mime 类型。类型。 资源编辑器将尝试自动检测资源编辑器将尝试自动检测 mime 类型。宽度类型。宽度高度高度位位/像素如果选中像素如果选中 BMP、PNG 或或 JPEG 图像,此处将给出图像的图像,此处将给出图像的尺寸。尺寸。 这些字段不能进行编辑。这些字段不能进行编辑。 对象预览如果选中对象预览如果选中 BMP、PNG 或或 JPEG 图像,此处将显示图像的预览效果。图像,此处将显示图像的预
9、览效果。 此字段不能进行编此字段不能进行编辑。辑。 Sun Bin 2009技术开发与应用创建资源创建资源-对象资源对象资源o资源的预览信息资源的预览信息nMime 类型o输入关联的 mime 类型。 资源编辑器将尝试自动检测 mime 类型。n宽度、高度、位/像素o如果选中 BMP、PNG 或 JPEG 图像,此处将给出图像的尺寸。 这些字段不能进行编辑。n对象预览o如果选中 BMP、PNG 或 JPEG 图像,此处将显示图像的预览效果。 此字段不能进行编辑。 Sun Bin 2009技术开发与应用字符串资源使用举例字符串资源使用举例o编写一个程序,在手机屏幕上显示中文字符串编写一个程序,在
10、手机屏幕上显示中文字符串“你好,你好,欢迎进入欢迎进入BREW世界世界”o编程思路:编程思路:1.创建工程创建工程hello2.使用资源编辑器创建资源文件使用资源编辑器创建资源文件myhello.brx,在该资源文件中创建一,在该资源文件中创建一个字符串资源,其个字符串资源,其ID为为1001,资源名为,资源名为IDS_STRING_1001,资源来源为资源来源为Text,数据值为,数据值为“你好,欢迎进入你好,欢迎进入BREW世界世界”,将该,将该资源文件编译为资源文件编译为myhello.bar和和myhello.brh,保存在工程,保存在工程hello的文件夹中的文件夹中3.在源代码在源
11、代码hello.c中添加中添加#include myhello.brh4.在源代码中使用在源代码中使用ISHELL_GetResSize()函数计算该字符串的大小函数计算该字符串的大小5.根据大小,分配内存空间根据大小,分配内存空间MALLOC()6.使用使用ISHELL_LoadResString()函数从资源文件中加载字符串到函数从资源文件中加载字符串到所分配的内存空间中所分配的内存空间中7.使用使用IDISPLAY_DrawText()函数显示该字符串函数显示该字符串Sun Bin 2009技术开发与应用字符串资源使用举例字符串资源使用举例o使用资源编辑器创建资源文件使用资源编辑器创建资
12、源文件myhello.brx,在该资源文件中创建一,在该资源文件中创建一个字符串资源,个字符串资源,ID为为1001,资源名为,资源名为IDS_STRING_1001,资,资源来源为源来源为Text,数据值为,数据值为“你好,欢迎进入你好,欢迎进入BREW世界世界”,将该资,将该资源文件编译为源文件编译为myhello.bar和和myhello.brhSun Bin 2009技术开发与应用字符串资源使用举例字符串资源使用举例o将该资源文件编译为将该资源文件编译为myhello.bar和和myhello.brhSun Bin 2009技术开发与应用字符串资源使用举例字符串资源使用举例在源代码在源
13、代码hello.c中添加中添加#include myhello.brh另外程序中用到助另外程序中用到助手函数手函数MALLOC ,因此还需要包含,因此还需要包含头文件头文件AEEStdLib.hSun Bin 2009技术开发与应用字符串资源使用举例字符串资源使用举例o在资源文件头文件在资源文件头文件myhello.brh中包含以下宏定义:中包含以下宏定义:o#ifndef MYHELLO_BRHo#define MYHELLO_BRHo/ WARNING: DO NOT MODIFY THIS FILEo/ AUTO-GENERATED BY BREW Resource Editoro#de
14、fine MYHELLO_RES_FILE myhello.baro#define IDS_STRING_10011001o#endif / MYHELLO_BRHSun Bin 2009技术开发与应用字符串资源使用举例字符串资源使用举例o在源代码在源代码hello.c的事件处理函数的事件处理函数hello_HandleEvent 的的EVT_APP_START事件中添加代码(红色为添加部分):事件中添加代码(红色为添加部分):ostatic boolean hello_HandleEvent(hello* pMe, AEEEvent eCode, uint16 wParam, uint32
15、dwParam)o o switch (eCode) o case EVT_APP_START: oo AECHAR * mystring; o uint32 resSize;oISHELL_GetResSize(pMe-pIShell,MYHELLO_RES_FILE,IDS_STRING_1001,RESTYPE_STRING,&resSize);omystring = (AECHAR *) MALLOC(resSize);oISHELL_LoadResString(pMe-pIShell,MYHELLO_RES_FILE,IDS_STRING_1001,mystring,resSize)
16、;oIDISPLAY_DrawText(pMe-pIDisplay,AEE_FONT_NORMAL,mystring,-1,10,20,NULL,NULL);oIDISPLAY_Update(pMe-pIDisplay);oFREE(mystring);oo return(TRUE);o / App is told it is exitingo case EVT_APP_STOP:Sun Bin 2009技术开发与应用字符串资源使用举例字符串资源使用举例o下面对添加的代码分别进行解释:下面对添加的代码分别进行解释:1、 AECHAR * mystring; 定义一个指向定义一个指向AECHAR
17、类型缓冲区的指针,该缓冲区用于从资源文件中装入类型缓冲区的指针,该缓冲区用于从资源文件中装入要显示的字符串要显示的字符串2、 uint32 resSize;定义一个整形变量,用于保存字符串资源的长度定义一个整形变量,用于保存字符串资源的长度3、ISHELL_GetResSize(pMe-pIShell, MYHELLO_RES_FILE, IDS_STRING_1001,RESTYPE_STRING,&resSize);该函数用于获取指定资源文件中指定资源的大小,其参数如下:该函数用于获取指定资源文件中指定资源的大小,其参数如下:第一个参数是指向第一个参数是指向IShell的指针(因为这是的指
18、针(因为这是IShell接口的函数)接口的函数)第二个参数指定资源文件的名字,其值取自资源文件头文件中;第二个参数指定资源文件的名字,其值取自资源文件头文件中;第三个参数指定资源文件中资源的第三个参数指定资源文件中资源的ID;第四个参数为资源文件的类型,此处字符串资源的类型为第四个参数为资源文件的类型,此处字符串资源的类型为RESTYPE_STRING第五个参数是存放资源大小的变量的地址,获取的资源大小将填入该变量中第五个参数是存放资源大小的变量的地址,获取的资源大小将填入该变量中Sun Bin 2009技术开发与应用字符串资源使用举例字符串资源使用举例4、 mystring = (AECHA
19、R *) MALLOC(resSize); 根据上条语句获取的字符串大小,使用根据上条语句获取的字符串大小,使用MALLOC函数为函数为mystring指指向的向的AECHAR类型缓冲区分配内存空间类型缓冲区分配内存空间5、 ISHELL_LoadResString(pMe-pIShell, MYHELLO_RES_FILE, IDS_STRING_1001, mystring, resSize);将字符串从资源文件中加载到内存的将字符串从资源文件中加载到内存的mystring缓冲区中,其参数如下:缓冲区中,其参数如下:o第一个参数是指向第一个参数是指向IShell的指针(因为这是的指针(因为
20、这是IShell接口的函数)接口的函数)o第二个参数指定资源文件的名字,其值取自资源文件头文件中;第二个参数指定资源文件的名字,其值取自资源文件头文件中;o第三个参数指定资源文件中资源的第三个参数指定资源文件中资源的ID;o第四个参数为字符串加载到内存的目标地址,为第四个参数为字符串加载到内存的目标地址,为mystring指向的缓冲区指向的缓冲区o第五个参数是给出要加载资源的大小第五个参数是给出要加载资源的大小Sun Bin 2009技术开发与应用字符串资源使用举例字符串资源使用举例6、 IDISPLAY_DrawText(pMe-pIDisplay, AEE_FONT_NORMAL,mystring,-1,10,20,NULL,NULL); 使用使用IDISPLAY_DrawText()函数将函数将mystring指指向的向的AECHAR字符串显示在屏幕字符串显示在屏幕10,20的位置的位置7、 IDISPLAY_Update(pMe-pIDisplay); 更新屏幕更新屏幕8、 FREE(mystring);该字符串如果使用完毕,以后不再使用,应将其占用的内该字符串如果使用完毕,以后不再使用,应将其占用的内存空间释放掉存空间释放掉Sun Bin 2009技术开发与应用字符串资源使用举例字符串资源使用举例运行结果运行结果Sun Bin 2009技术开发与应用