




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,1,第六章Symbian基础窗口界面程序设计,.,2,完成本章内容之后我们将能够:掌握与UI相关的API和组件知道如何处理用户的输入了解Series60和UIQUI的相同和不同之处,本章目标,.,3,概述,Series60是Nokia创建的一系列开发人员平台之一,它有几个版本。1.0、1.1和1.2版本(统称为Series60平台1.x)基于SymbianOS6.1。本章描述的Series60平台2.0基于SymbianOS7.0。平台2.0引入的影响到应用程序UI的主要功能是皮肤(skin)和双向文本支持。皮肤允许用户通过更改背景位图、图标和颜色方案自定义UI。皮肤在本章后面描述。双向文本支持功能支持从右向左书写的语言(例如希伯来语和阿拉伯语)的编辑和显示。它也影响到整个UI中控件的顺序和对齐方式。,.,4,概述,所有Series60手机都使用一个允许在4个方向导航的导航控制器、一个确认键和屏幕下面两个称为软键(softkey)的硬件按钮。这些按钮使Series60手机易于单手使用。用户可以使用手机的键盘输入文本并可以选择使用预测式文本输入系统。UIQ由UIQTechnologyAB(SymbianLtd的一家子公司)生产。UIQ1.0在2000年9月发布,此后还发布了几个版本。本章介绍运行在SymbianOS7.0上的2.1版本。,.,5,UIQ手机有一个大的触摸屏(6cmScm或4cm6cm),使用触笔作为它们的主输入设备。不过,像Series60一样,所有UIQ手机都提供一个硬件确认键和其他导航硬件键,至少包括向上和向下键,可选的包括向左和向右键,以便于单手浏览手机的内容。触摸屏允许使用一些文本输入方法(如手写识别)和一个屏幕虚拟键盘。对于用户,这些UI有很大差异,但是对于程序员,它们有很多共同点。它们有同样的基础框架,这意味着,为这两种UI编写的应用程序具有同样的结构、应用程序基础、文档、appUI和视图类。,概述,.,6,Series60和UIQ都支持很多种设备。手机制造商可以自定义UI的风格,例如图标、颜色方案、字体和文本,但是运行在同样平台的全部手机具有相同的基本屏幕布局和UI组件。自定义风格SymbianOS包括一个抽象风格层,在一个称为Uiklaf的组件中由UI实现。Uikon使用这个组件得到关于UI的信息。例如,Uiklaf定义UI的标准字体和控件周围边框的外观。在一些手机中,应用程序也在移动到背景之前简单淡出。这个行为在Uiklaf中定义。,屏幕布局,.,7,全部Uiklaf类有一个Laf前缀。它们只是打算在Uikon内部使用。作为一个例外,淡出在其他情况中使用。例如在两种UI中,当一个对话框显示时,前台应用程序都淡出;只有在Series60中,当菜单窗格显示时,它才淡出。,屏幕布局,.,8,Series60在Series60中,屏幕分为3个区域或窗格(如图3.1所示)。这3个窗格称为状态窗格、主窗格和控制(或软键)窗格。,屏幕布局,.,9,状态窗格状态窗格(通常显示在屏幕的顶端)显示前台应用程序的相关信息,包括它的标题和图标,以及手机相关的常规信息,例如信号强度。它由6个子窗格组成。这些子窗格从左到右布局(或在某些情况下从右到左,例如在阿拉伯和希伯来布局中,其中许多控件的顺序相反)。,屏幕布局,.,10,信号窗格(信号强度指示符)。上下文窗格(显示应用程序的图标)。标题窗格(显示应用程序的标题)。导航窗格(可以包含选项卡、图像或文本,或者为空)。电池窗格(电池强度指示符)。小指示符窗格(包含连接和一些其他指示符)。其中,只有标题窗格、上下文窗格和导航窗格可以由应用程序编写人员自定义。,屏幕布局,.,11,导航窗格默认为空,但是它可以包含一个选项卡组,多页对话框中表示当前页以及是否有更多视图或页。在单一视图应用程序中,导航窗格可以包含一个标签或图像,而不是一个选项卡组。当视图中的项是一个序列的一部分时,这可以发挥作用。在这种情况下,左和右箭头位图可以说明有下一项或前一项。例如,日历应用程序在导航标签中显示日期并使用这个标签进行导航。,屏幕布局,.,12,当应用程序在文本编辑状态时,导航窗格自动显示一个编辑指示符,说明输入模式是数字还是字母,以及是大写还是小写(使用非西方语言的手机有不同的输入模式)。应用程序的初始状态窗格在应用程序的EIK_APP_INFO资源(全部应用程序的资源文件都需要)中定义。,屏幕布局,.,13,状态窗格由STATUS_PANE_APP_MODEL资源定义,它的子窗格由SPANE_PANES定义。有下列类型的子窗格资源:TITLE_PANE。可以选择包含图标,而不用文本,但是不能两者都包含。默认是从它的aif文件读取应用程序的标题。CONTEXT_PANE。包含表示应用程序的图标。这个图标显示在标题旁边。默认是从它的aif文件读取应用程序的图标。NAVI_DECORATOR。可以包含不同类型的控件,包括选项卡组(TAB_GROUP)、文本标签(NAVI_LABEL)或图像(NAVI_IMAGE)。,屏幕布局,.,14,控制窗格控制窗格包含软键标签和滚动指示符。软键标签是一个字符串,通常是标识与软键关联的操作的单一短字。标签基于应用程序的状态而改变。常常,左侧软键标记为“选项(Option)”,它激活菜单窗格。它也可以用于发出确认的命令,例如“Ok”、“选择”和“是”,而右侧软键用于“否”、“后退”、“取消”和“退出(Exit)”命令。,屏幕布局,.,15,两个软键都使用CBA资源结构来定义,该结构包含定义左侧和右侧软键的两个CBA_BUTTONS的数组。这些结构在uikon.rh中声明。Series60在avkon.rsg中声明许多标准CBA资源,名称以R_AVKON_SOFTKEYS开始。可以重新使用这些资源或定义自己的资源。,屏幕布局,.,16,例如,下面是Series60对于“是”和“否”软键的资源定义:RESOURCECBA_ravkon_softkeys_yes_nobuttons=CBA_BUTTONid=EAknSoftkeyYes;txt=text_softkey_yes;,CBA_BUTTONid=EAknSoftkeyNo;txt=text_softkey_no;,屏幕布局,.,17,txt和id字段用于定义软键标签和它调用的命令ID。注意,“是/否”文本在一个包含本地化文本字符串的单独文件中定义。软键发出的命令ID在avkon.hrh中定义。一些常见命令ID:EaknSoftkeyOk。EaknSoftkeyCancel。EaknSoftkeySelect。EaknSoftkeyOptions。EaknSoftkeyBack。EakaSoftkeyDone。EakaSoftkeyClose。EaknSoftkeyExit。,屏幕布局,.,18,软键可以在以下几个位置定义:cba字段在EIK_APP_INFO资源中。buttons字段在DIALOG资源中。cba字段在AVKON_VIEW资源中。softkeys字段在AVKON_LIST_QUERY资源中。softkeys字段AVKON_MULTIPLESELECTION_LIST_QUERY资源中。应用程序的初始软键在EIK_APP_INFO资源中定义;常常是“选项(Option)”和“退出(Exit)”(R_AVKON_SOFTKEYS_OPTIONS_EXIT)。“选项”菜单窗格由EIK_APP_INFO的menubar字段定义。,屏幕布局,.,19,3.主窗格这是状态窗格和控制窗格之间的区域,通常是应用程序可以进行绘制的区域它是appUI的ClientRect()函数返回的区域。3.3.3UIQUIQ中的屏幕分为5个区域(如图3.2所示),其中之一的工具栏是可选的。,屏幕布局,.,20,屏幕布局,.,21,1应用程序选取器它用于在应用程序间切换。最右边的图标切换到应用程序启动器,它提供对全部已安装应用程序的访问。用户可以更改在应用程序选取器中显示的应用程序。,屏幕布局,.,22,2菜单栏UIQ没有控制窗格或软键。它使用在应用程序选取器下面总是可见的菜单栏。每个视图一般具有它自己的菜单栏。大多数UIQ菜单栏有两个左对齐菜单标题和一个右对齐“文件夹”菜单。最左边的标题应该是应用程序的名称。它提供首要的菜单窗格,有标准功能如“新建”、“查找”和“另存为”。右边的下一个菜单标题(如果不需要,可以被忽略)通常提供标准“编辑”命令,如“剪切”、“复制”、“粘贴”和“缩放”。UIQ菜单窗格应该简短并且不使用级联菜单窗格。如果菜单窗格包含比适当屏幕更多的项,将添加一个滚动栏,不过,应该避免这样做。,屏幕布局,.,23,注意,UIQ菜单不包括“退出”或“关闭”选项;除了在调试生成中,对于检查应用程序在关闭时是否释放全部资源,它可能有用。它们也不应该提供“保存”选项;UIQ应用程序应该不需要用户干预,就可以保存它们的数据。,屏幕布局,.,24,本节介绍如何定义、创建和使用两种UI中都存在的UI组件,包括两种实现之间的差异。3.4.1菜单栏菜单在资源文件中定义,由下列四个组件组成:菜单栏在UIQ中是一个包含菜单标题的水平栏。在Series60中,它从不显示。它使用一个MENU_BAR资源定义(在C+中使用CEikMenuBar)。菜单标题。这些标题定义一个菜单窗格,在UIQ中,定义菜单栏中显示的文本。它们由MENU_TITLE资源定义。注意,在Series60中,在控制窗格中显示的标签不在ENU_TITLE资源中定义,而是在定义软键的CBA资源中定义。,常见UI组件,.,25,菜单窗格,是当用户在UIQ中选择菜单标题或在Series60中选择“选项”软键时显示的菜单项垂直列表。它们由MENU_PANE资源定义(在C+中使用CEikMenuPane)。Series60和UIQ都支持级联菜单窗格,尽管在UIQ中已淘汰。菜单项,是菜单窗格中可以由用户选择的项。它们由MENU_ITEM资源定义,与显示在菜单窗格中的标签和选择该项时发出的命令ID关联。,常见UI组件,.,26,UIQ中的菜单栏总是可见。它支持多菜单标题,每个标题与一个菜单窗格关联。在Series60中,使用控制窗格,而不是菜单栏。不过,在大多数Series60应用程序中,菜单栏仍然需要定义,因为它定义“选项”软键激活的菜单窗格。在Series60和UIQ中,当应用程序启动时,使用的初始菜单栏在EIK_APP_INFO资源结构中的menubar字段中定义。,常见UI组件,.,27,不同的视图通常需要不同的菜单栏,因此当视图更改时,菜单栏也应该更改。在UIQ中,菜单栏切换在视图的ViewActivatedL()函数中进行,使用如下代码:MEikAppUiFactory*factory=iEikonEnv-AppUiFactory();factory-MenuBar()-ChangeMenuBarL(0,R_NEW_MENUBAR,EFalse);CEikMenuBar:ChangeMenuBarL()的第二个参数是新视图菜单栏的资源ID。另外两个参数在UIQ中不使用。,常见UI组件,.,28,在Series60中,如果需要动态更改菜单栏,可以使用如下代码:MEikAppUiFactory*factory=iEikonEnv-AppUiFactory();factory-MenuBar()-SetMenuTitleResourceId(R_NEW_MENUBAR);与UIQ不同,Series60不实现CEikMenuBar:ChangeMenuBarL();你必须使用SetMenuTitleResourceId()。,常见UI组件,.,29,然而,对于在视图特定的菜单栏之间的切换,Series60通常使用不同的方案。Series60视图由AVKON_VIEW资源定义,与视图关联的菜单栏和软键在资源中定义:STRUCTAVKON_VIEWLLINKhotkyes=0;LLINKmenubar=0;LLINKcba=0;,常见UI组件,.,30,在视图的ConstructL()中,调用CAknView:BaseConstructL(),给它传递AVKON_VIEW资源的ID。当视图激活时,自动使用它的菜单栏和软键。在Series60中,对话框可以定义它们自己的菜单栏。Series60对话框基类CAknDialog拥有一个菜单栏,该菜单栏的资源ID在构造对话框时定义。该对话框使用的软键在DIALOG资源的buttons字段中定义。当该对话框启动时,它的软键标签改写以前显示的标签,将它的菜单栏添加到控件栈,以便它在现有菜单栏之前接收键事件。注意,不需要“选项”菜单窗格的Series60对话框可以从CeikDialog派生。,常见UI组件,.,31,窗体(CAknForm)是一种派生于CAknDialog的对话框。窗体提供它们自己的默认菜单栏和菜单窗格。列表查询对话框(CAknListQueryDialog)也派生于CAknDialog。它们由AVKON_LIST_QUERY资源定义(使用一个名为softkeys的字段而不是buttons来定义它的软键)。对话框和窗体我们将在本章后面介绍。,常见UI组件,.,32,3.4.2菜单窗格菜单窗格的内容可能也需要根据应用程序的状态更改。使菜单项可用或不可用的的函数是CEikMenuPane:SetItemDimmed()。在UIQ中,用ETrue调用这个函数,导致该项保留在菜单中,但是它显示为浅灰色。在Series60中,为了保存屏幕空间并使菜单导航更快,该菜单项被移除。再次用EFalse调用该函数取消浅灰色或导致它重新出现。,常见UI组件,.,33,另一方面,CEikMenuPane:Del
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一棵开花的树1500字12篇
- 杭州宋城游记650字9篇
- 小王子读后感900字(9篇)
- 早期育儿知识培训方案课件
- 纪检业务知识培训目的课件
- 统编版语文四年级上册《语文园地八》课件
- 早期埃及课件
- 农村资源开发综合利用合同书
- 农村环保技术应用合作合同书
- 六年级观后感八佰观后感十五550字12篇
- 公司合同协议变更
- 2025届吉林市高三第三次模拟考试生物试卷(原卷版+解析版)
- 反恐安全风险评估记录
- 【图文】个人简历模板大全-可直接下载使用
- DB42∕T 1049-2015 房产测绘技术规程
- 2025年美术作品授权合同协议
- 支持青少年身心健康的家庭指南 资讯、建议和资源 -促进中小学学生(K-12)家庭的心理健康意识和身心健康
- 加气站气瓶充装质量保证体系手册2024版
- 构建学校与家庭共育的信息化平台研究
- 2025年下派挂职干部工作总结范例(三篇)
- 中国卫星网络集团有限公司介绍
评论
0/150
提交评论