使用XML的方式添加资源.doc_第1页
使用XML的方式添加资源.doc_第2页
使用XML的方式添加资源.doc_第3页
使用XML的方式添加资源.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MTK 10A的代码规范里使用XML的方式添加资源大大简化了对资源的维护方式.1.添加图片资源 .在对应的 app.res 文件中 添加 路径2.添加字串资源。 在对应的app.res 文件中 添加 字串 3.添加菜单资源。在对应的app.res 文件中 添加调用RESGEN 编译时 会用到 resgen_xml,exe 将xml文件编译成响应的资源文件和头文件。使用资源时包含相应的头文件即可。例如编辑主菜单请到MainMenuRes.res中。1、文件结构目录一:plutommiMMIFirstApp目录二:plutommiMMIFirstAppFirstAppInc(该结构未改变)文件列表:FirstAppDefs.h:用于存放本程序所需要的类型,结构,常量的定义FirstAppProt.h:用于存放本程序中的所有函数声明,但此文件只被本文件的源程序所加载FirstAppGprot.h:也是用于存放函数声明,但是此文件是用于别的程序加载,即此文件中的函数声明的都是对外的接口FirstAppResDef.h:用于存放本资源ID的定义接口目录三:plutommiMMIFirstAppFirstAppSrc(该结构未改变)FirstAppSrc.c程序的主源文件目录四:plutommiMMIFirstAppFirstAppRes(新的目录)FirstApp.res:资源文件定义,包含字串、图片、菜单、屏幕等的定义,该文件实际为一个标准xml文件ref_list_FirstApp.txt:该模块多国语言字串定义(目前发现该文件并未生效,不知道是否是设置问题)2、将文件加入项目修改makeplutommimmi_app下的三个文件:1)mmi_app.lis:此文件用来申明MMI所要编译的所有源文件,添加如下一行:plutommiMMIFirstAppFirstAppSrcFirstAppSrc.c2)mmi_app.inc:此文件用来指明MMI所有头文件所在目录,同样添加:plutommiMMIFirstAppFirstAppInc3)mmi_app.pth:此文件用来指明MMI所有源文件所在目录,添加:plutommiMMIFirstAppFirstAppSrc4)在plutommiCustomerResGeneratorMakeFile文件中添加如下一行:-I ././MMI/FirstApp/FirstAppInc3、应用程序ID定义1)在基础ID 统一定义文件plutommiMMIIncmmi_res_range_def.h(原来为MMIDataType.h)中找到如下定义块:RESOURCE_BASE_ENUM_BEGIN()RESOURCE_BASE_ENUM_END()在其中添加:#ifdef _MMI_FIRSTAPP_RESOURCE_BASE_RANGE(FIRSTAPP, 50),#endif2)找到如下定义块:RESOURCE_BASE_TABLE_BEGIN()RESOURCE_BASE_TABLE_END()在块中间末尾位置添加:#ifdef _MMI_FIRSTAPP_#define FIRSTAPP_BASE (U16) GET_RESOURCE_BASE(APP_FIRSTAPP)#define FIRSTAPP_BASE_MAX (U16) GET_RESOURCE_MAX(APP_FIRSTAPP)RESOURCE_BASE_TABLE_ITEM_PATH(APP_FIRSTAPP, .MMIFirstAppFirstAppRes)/这里较之前有所变化#endif4、字串、图片、屏幕资源的添加先来说字串、图片、屏幕资源ID的添加。10A版本中对资源定义的改动比较大,稍微对比一下新老版本,你会发现很多原来很大的文件变小了,而多出来了很多.res后缀的文件,这就是新版本的资源定义文件。10A版本仍部分保持了老版本的定义方式,不过笔者建议采用新版本的方式来定义资源,而且与之前相比新版本的资源定义要方便不少。读者可以随便找一个res文件,这个res文件类似与xml文件,不过你可以在其中使用一些C的预处理命令和注释。使用这种方式你不需要自己去定义res_app_firstapp.c,系统会在这个文件中搜索ID并自动生成名为mmi_rp_app_firstapp_def.h和mmi_rp_app_firstapp.c的文件,并在后者中定义对应的populate函数。至于res文件中各标签和其属性定义,请参看MTK官方文档10A_MMI_Resource_Training.pdf。5、菜单添加菜单由于有上下级关系,定义要相对复杂些,这里先介绍几个标签:MENU、MENUITEM和MENUITEM_ID。MENU是用来定义菜单树的标签,MENUITEM是用来定义单个菜单项的标签,MENUITEM_ID是用来在MENU树中安置菜单项的标签。下面来讨论菜单的定义。新版本中菜单的定义方式有很多种,现介绍最常用的三种方式,其它方式请读者参看上面给出的MTK官方文档。方法一:MENU中包含MENUITEM_ID方式定义这种方式采用如下格式:SUBMENU1SUBMENU2采用这种方式要在MENU体外申明对应MENUITEM的定义,可以放在引用MENU之前也可在其后,但MENU中MENUITEM_ID包含的内容必须是已定义的MENUITEM的ID,如果不存在系统将会将该菜单忽略。另外提一点,为了和先前的版本兼容,MTK提供了OID:前缀,用来引用原先在c文件中定义的菜单ID,使用方法是将其放在标签对之间即可,例如:OID:SUBMENU3。不过引用前请使用引用你ID所在文件,将其至于下。方法二:直接将MENUITEM定义在MENU中,格式如下:SUBMENU1SUBMENU2这种方式不需要在MENU体外定义对应MENUITEM,只需要放在MENU标签内同时定义MENUITEM信息即可。方法三:嵌套MENU,格式如下:采用这种方式使得菜单的定义一次完成,也易于理解,但是当属性较多层次较深的时候可能显得较乱。这种方式是直观的MENU树表现方式,显示了子菜单与父级菜单的对应关系。有些读者可能对MENU和MENUITEM有些迷茫,笔者认为,在大部分时候MENU和MENUITEM可以通用,你可以把他们看成一种东西(MENU)。你可以将方法三

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论