350 likes | 473 Vues
手机应用开发 symbian 的 UI 组件介绍 资源文件介绍 程序发布前的工作. 王旭. 编制 UI 部分程序使用的系统组件. Controls Skin 事件处理 资源文件 Menu Pane. “Controls” 和“ window”.
E N D
手机应用开发symbian的UI组件介绍 资源文件介绍 程序发布前的工作手机应用开发symbian的UI组件介绍 资源文件介绍 程序发布前的工作 王旭
编制UI部分程序使用的系统组件 • Controls • Skin • 事件处理 • 资源文件 • Menu • Pane
“Controls”和“window” • “Controls”是屏幕上一个矩形区域,用于显示消息或者接收用户输入。Controls是用户界面的基本元素,常见的按钮、菜单、视图以及大多数UI元素都是一个controls,他们都是从CCoeControl继承来的。“window”是一种窗口服务器拥有的系统资源,它描述了屏幕上包含一个或多个controls的矩形区域,它提供了显示自身拥有的controls的机制。 • UI代码不能在window上直接绘图,代码只能在controls上绘图。大量的窗口可以并发显示,这时候通过一个系统属性z-order来标识它们的层次。
简单和组合的“controls” • 简单的controls就是一个没有包含其他controls的controls,它只能用于画出一个矩形框。组合controls包含了其他的一个或多个controls • 在屏幕的表现能力上,组合controls明显要好的多,使用便利性也高的多。使用组合的controls可以把工作区域分为不需更新,经常更新,少量更新几个区域来分配不同的嵌套的controls来展示内容,以减少屏幕重绘带来的闪烁问题。
Window的属主 • 因为window属于昂贵的资源,为了减少系统开销,可以使用无window的controls来避免每个controls创建window • Controls 在window上完成绘图,因此每个controls都必须有个关联的window ,不过一个window可以被多个controls所共享。 • 拥有window的controls不能共享其他controls的窗口
skins • Skins可以提供UI在运行时改变的能力,它允许自定义桌面背景图,修改图标和颜色。 • Skin允许controls从几个层次上支持它 强迫skin支持-总是显示皮肤并且动态的响应skin的改变 可选skin支持-不显示皮肤,但是可以在需要时使用皮肤 Skin观察者-自己不使用skin,外观由父controls的皮肤决定 Skin不敏感-不支持皮肤
Event handling • 用户界面的交互结果是通过事件传递给拥有窗口的应用程序的。虽然系统里会产生多种事件,对于应用程序来说,最重要的是按键和重绘事件。
Resource files • 资源文件是rss结尾的文本文件,它用来指定你的应用程序里的用户可见元素,它可以指定菜单、对话框、列表等UI元素的布局,资源文件被编译为二进制文件后可以被symbian框架打开使用。
Menus • Menu 是描述用户命令清单的一个窗口,它拥有多个menu-item,用行分隔方式分开,当用户选定一个menu-item,就说明有个应用命令被调用。
Panes • Pane 是组成s60应用界面窗口的基本元素,有状态pane,主pane和软键盘pane。
Dialogs • Symbian的对话框是GUI程序最经常使用的Ui控件 • 常见的包括: 查询对话框、单页对话框、多页对话框、
Lists • 各种列表框是在 Series 60 Developer Platform中表现那些由文本 组成的数据结构视图的常见方式,它们被广泛运用于大多数 Series 60 应用中
列表框的分类 • 列表框根据其功能种类而提供。可用的一些列表框包括各种简单的选项及菜单列表框,可标记及多选列表框,以及各种设置列表框等。各种选项及菜单列表框允许选择单项,而可标记及多选列表框则用于同时选择多项。设置列表框中包含了一列其值可调整的项 • 演示各种列表框的图片
Editors • S60包括了多种编辑框,从电话编辑框到密码编辑框 • 使用editors 需要注意他的几个属性的使用 使用的cases模式、 数字 输入模式使用“*”“#”、 输入模式定义、 是否使用特殊字符表、
UI资源文件 • Symbian与windows的资源文件 • 资源脚本语法 • 本地化字符串 • 使用多资源文件 • 编译资源文件 • 资源文件类型 • 资源处理过程 • 资源改变对应用生成的影响方式 • 编译完成的资源文件内容
Symbian资源文件与windows的差别1 • Windows使用的资源文件编译器不但支持文本,而且还包括图像和图标资源,Symbian的资源编译器只支持文本。 • Windows 的开发环境带有基于GUI的资源编辑器,大多程序员不需要查看任何的文本资源脚本
Symbian资源文件与windows的差别2 • Symbian 开发者着眼于多种硬件平台,每种硬件需要不同的可执行文件格式,保持资源文件独立,可以引入一个抽象层,可以简化程序开发,并减少开发人员把程序移植到不同硬件平台上的负担 • 独立的资源文件可以让本地化更加容易,因为可以使用一个执行程序加多个与语言相关的资源文件就可以提供多语言的应用程序
资源脚本语法 • 资源脚本文件可以使用如下的基本数据类型,也可以使用STRUCT定义用户类型:BYTE、WORD、LONG、DOUBLE、TEXT、LTEXT、BUF、BUF8、LINK、LLINK、SRLINK • 可以包含相关头文件,支持常量的emum和#define语法,合法的语法还包括NAME、STRUCT、RESOURCE、CHARACTER—SET
资源脚本语法2 • 资源文件里最重要语句就是RESOURCE,用来定义资源,语法如下:RESOURCE struct_name [id] {member_list} • 例如: RESOURCE MENU_PANr_exampleothermenu { items= { MENU_ITEM { command=Example1;txt=“cmd1”}, MENU_ITEM { command=Example2;txt=“cmd2”} }; } • 标点规则 成员定义的最后}后需要加分号,分割列表的}后需要加逗号,资源末尾的}不需任何标点。
可本地化字符串 • 如果准备提供多种语言的应用程序,应该把需要本地化的字符串分别放到多个分开的文件中,以.rls为扩展名。文件为字符串定义符号标识,当资源文件需要相关的字符串时,就会引用这些符号标识。 • 这样好处是允许翻译过程关注翻译任务本身,而不需要关注资源文件本身的结构和语法。
多资源文件 • Symbian 支持使用多个资源文件 • 应用程序使用32位id标识资源符号 前20位标识资源文件(5个16进制数) 后12位标识资源(3个16进制数) 故每个资源文件使用的资源数目不能查过4095的限制 前20位标识是由资源文件的NAME指定的4字符生成,注意NAME尽量不要选择和OS系统组件类似的名字以避免重名。
编译资源文件 • 资源编译器是作为应用程序生成过程的一个部分被调用的,也可以单独使用 abld build wins udeb这个命令包括了使用资源编译器的过程,单独使用的命令是 abld resource wins udeb • 资源编译结果在应用程序目录产生.rsc文件和.rsg头文件 • 头文件包含资源的符号ID,应用程序运行时通过指定资源的ID来使用资源
资源文件类型 • .rss 应用程序资源文件脚本 • .rls 应用程序的可本地化字符串 • .rsc 生成的资源文件 • .rsg 生成的资源头文件 • .hrh 应用程序特定的符号常量头文件 • .rh 自定义的资源数据类型文件
资源改变对应用程序重新生成的影响方式 • 如果按照普通的生成规则,一旦资源文件有所改动,则整个应用需要重新生成。 • 为了避免少量的资源改动导致大量的应用代码重新生成,采用保守的rsg更新方式,只在必要时才需要应用重新生成。
已编译的资源文件的内容 • 编译器按照顺序生成运行时资源文件,开头是文件信息头,标识是资源文件,然后是顺序排列的资源,末尾是索引。 • 为了节省空间,Unicode字符串数据被压缩了 • 可使用BAFI提供的API读取资源
程序完成发布之前的工作 • 创建位图 • 位图转换 • 修改资源文件 • 添加程序图标
Symbian里的位图 • Symbian使用的位图和windows位图有所不同,叫多重位图文件,文件后缀是mbm • 可以在应用产生过程把bmp文件转为mbm文件,也可单独调用bmconv工具进行转换工作 • 位图和其他资源在symbian里是使用不同的工具,分开处理的,便于更加精细的控制文件的内容 • 通常使用两个位图来创建图标,一个是图标本身,另一个是屏蔽位图,用黑色标识图标的有效区域
应用程序生成进行位图转换 • 创建windows位图后,加入项目的mmp中 语句里的顺序无关紧要,但是色深值需要注意,C12代表12位色,1表示色深为1,屏蔽位图只需要黑色,可设定为1,可减小mbm的尺寸
修改资源文件 • 为了把图标放在应用程序指定的位置上,在位图转换为mbm文件之前,需要精确定义图标在按钮栏上的显示方式,这需要修改资源文件,添加以下内容: 图标位图的名字 屏蔽位图的名字 每个按钮的函数规范 何处插入和位图相关的按钮文本
添加程序图标 • 应用程序显示的图标可以使用各种特色图片,这个图标可以使用aiftool工具来增加到应用程序中。 • 应用程序图标和标题,以及其他和应用程序性能相关的信息都放在AIF文件中,没有AIF的程序会使用默认的内容。 • 修改应用程序图标需要创建42×29的列表图标和44×44的完整图标,需要在mmp文件增加描述语句
添加标题 • 添加应用程序标题需要在源文件目录创建一个rss文件,在里边指定程序图标的所有标题信息和显示方式。这个应用信息rss的文件格式与应用程序内部用的rss文件类似,但是内容会小很多。
其他信息 联系方法:邮箱: wangxu@moabc.com MSN: xuwag@hotmail.com 以前的课件下载地址如下: • http://www.javayou.com/html/diary/showlog.vm?sid=2&cat_id=-1&log_id=3293 • http://www.dlog.cn/uploads/intro.ppt • http://www.dlog.cn/uploads/sp.ppthttp://www.dlog.cn/uploads/j2me.ppthttp://www.dlog.cn/uploads/symbian_begin.ppthttp://www.dlog.cn/uploads/symbian_env.ppt