手机应用开发 symbian 的 UI 组件介绍 资源文件介绍 程序发布前的工作

Preview:

DESCRIPTION

手机应用开发 symbian 的 UI 组件介绍 资源文件介绍 程序发布前的工作. 王旭. 编制 UI 部分程序使用的系统组件. Controls Skin 事件处理 资源文件 Menu Pane. “Controls” 和“ window”. - PowerPoint PPT Presentation

Citation preview

手机应用开发手机应用开发symbiansymbian 的的 UIUI 组件介绍组件介绍资源文件介绍资源文件介绍程序发布前的工作程序发布前的工作

王旭

编制编制 UIUI 部分程序使用的系统组部分程序使用的系统组件件ControlsSkin事件处理资源文件MenuPane

““Controls”Controls” 和“和“ window”window”

“Controls”是屏幕上一个矩形区域,用于显示消息或者接收用户输入。 Controls是用户界面的基本元素,常见的按钮、菜单、视图以及大多数 UI元素都是一个 controls,他们都是从 CCoeControl继承来的。“ window”是一种窗口服务器拥有的系统资源,它描述了屏幕上包含一个或多个 controls的矩形区域,它提供了显示自身拥有的 controls的机制。

UI代码不能在 window上直接绘图,代码只能在 controls上绘图。大量的窗口可以并发显示,这时候通过一个系统属性 z-order来标识它们的层次。

简单和组合的“简单和组合的“ controls”controls”

简单的 controls就是一个没有包含其他controls的 controls,它只能用于画出一个矩形框。组合 controls包含了其他的一个或多个 controls

在屏幕的表现能力上,组合 controls明显要好的多,使用便利性也高的多。使用组合的 controls可以把工作区域分为不需更新,经常更新,少量更新几个区域来分配不同的嵌套的 controls来展示内容,以减少屏幕重绘带来的闪烁问题。

WindowWindow 的属主的属主因为 window属于昂贵的资源,为了减少系统开销,可以使用无 window的 controls来避免每个 controls创建 window

Controls 在 window上完成绘图,因此每个 controls都必须有个关联的 window ,不过一个 window可以被多个 controls所共享。

拥有 window的 controls不能共享其他 controls的窗口

skinsskins

Skins可以提供 UI在运行时改变的能力,它允许自定义桌面背景图,修改图标和颜色。

Skin允许 controls从几个层次上支持它强迫 skin支持-总是显示皮肤并且动态的响应 s

kin的改变可选 skin支持-不显示皮肤,但是可以在需要时使用皮肤

Skin观察者-自己不使用 skin,外观由父 controls的皮肤决定

Skin不敏感-不支持皮肤

Event handlingEvent handling

用户界面的交互结果是通过事件传递给拥有窗口的应用程序的。虽然系统里会产生多种事件,对于应用程序来说,最重要的是按键和重绘事件。

Resource filesResource files

资源文件是 rss结尾的文本文件,它用来指定你的应用程序里的用户可见元素,它可以指定菜单、对话框、列表等 UI元素的布局,资源文件被编译为二进制文件后可以被 symbian框架打开使用。

MenusMenus

Menu 是描述用户命令清单的一个窗口,它拥有多个 menu- item,用行分隔方式分开,当用户选定一个 menu- item,就说明有个应用命令被调用。

PanesPanes

Pane 是组成 s60应用界面窗口的基本元素,有状态 pane,主 pane和软键盘pane。

DialogsDialogs

Symbian的对话框是 GUI程序最经常使用的 Ui 控件

常见的包括:查询对话框、单页对话框、多页对话框、

ListsLists

各种列表框是在 Series 60 Developer Platform 中表现那些由文本 组成的数据结构视图的常见方式,它们被广泛运用于大多数 Series 60 应用中

列表框的分类列表框的分类列表框根据其功能种类而提供。可用的一些列表框包括各种简单的选项及菜单列表框,可标记及多选列表框,以及各种设置列表框等。各种选项及菜单列表框允许选择单项,而可标记及多选列表框则用于同时选择多项。设置列表框中包含了一列其值可调整的项

演示各种列表框的图片

Editors Editors

S60包括了多种编辑框,从电话编辑框到密码编辑框

使用 editors 需要注意他的几个属性的使用使用的 cases 模式、数字 输入模式使用“ *”“#”、输入模式定义、是否使用特殊字符表、

UIUI 资源文件资源文件Symbian 与 windows的资源文件资源脚本语法本地化字符串使用多资源文件编译资源文件资源文件类型资源处理过程资源改变对应用生成的影响方式编译完成的资源文件内容

SymbianSymbian 资源文件与资源文件与 windowswindows的差别的差别 11Windows使用的资源文件编译器不但支持文本,而且还包括图像和图标资源,Symbian的资源编译器只支持文本。

Windows 的开发环境带有基于 GUI的资源编辑器,大多程序员不需要查看任何的文本资源脚本

SymbianSymbian 资源文件与资源文件与 windowswindows的差别的差别 22Symbian 开发者着眼于多种硬件平台,每种硬件需要不同的可执行文件格式,保持资源文件独立,可以引入一个抽象层,可以简化程序开发,并减少开发人员把程序移植到不同硬件平台上的负担

独立的资源文件可以让本地化更加容易,因为可以使用一个执行程序加多个与语言相关的资源文件就可以提供多语言的应用程序

资源脚本语法资源脚本语法资源脚本文件可以使用如下的基本数据

类型,也可以使用 STRUCT定义用户类型: BYTE、WORD、 LONG、 DOUBLE、 TEXT、 LTEXT、 BUF、 BUF8、 LINK、 LLINK、 SRLINK

可以包含相关头文件,支持常量的 emum和 #define 语法,合法的语法还包括NAME、 STRUCT、 RESOURCE、 CHARACTER—SET

资源脚本语法资源脚本语法 22资源文件里最重要语句就是 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 自定义的资源数据类型文件

资源处理过程资源处理过程.rh

.app

.rsc

.rsg

.cpp

.h

.hrh

.rss

.rsl

资源编译器

C++生成

资源改变对应用程序重新生成的影资源改变对应用程序重新生成的影响方式响方式如果按照普通的生成规则,一旦资源文件有所改动,则整个应用需要重新生成。

为了避免少量的资源改动导致大量的应用代码重新生成,采用保守的 rsg更新方式,只在必要时才需要应用重新生成。

已编译的资源文件的内容已编译的资源文件的内容编译器按照顺序生成运行时资源文件,开头是文件信息头,标识是资源文件,然后是顺序排列的资源,末尾是索引。

为了节省空间, Unicode 字符串数据被压缩了

可使用 BAFI提供的 API 读取资源

程序完成发布之前的工作程序完成发布之前的工作创建位图位图转换修改资源文件添加程序图标

SymbianSymbian 里的位图 里的位图 Symbian使用的位图和 windows 位图有所不同,叫多重位图文件,文件后缀是 mbm

可以在应用产生过程把 bmp文件转为 mbm文件,也可单独调用 bmconv工具进行转换工作

位图和其他资源在 symbian里是使用不同的工具,分开处理的,便于更加精细的控制文件的内容

通常使用两个位图来创建图标,一个是图标本身,另一个是屏蔽位图,用黑色标识图标的有效区域

位图生成过程位图生成过程

rss

cpp

mbg

mbm

bmp应用程序生成工具

Windows 位图编辑器

应用程序生成进行位图转换应用程序生成进行位图转换创建 windows 位图后,加入项目的 mm

p 中语句里的顺序无关紧要,但是色深值需要

注意, 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.ppt

http://www.dlog.cn/uploads/j2me.ppthttp://www.dlog.cn/uploads/symbian_begin.ppthttp://www.dlog.cn/uploads/symbian_env.ppt