付費(fèi)下載
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1,第六章 Symbian 基礎(chǔ)窗口界面程序設(shè)計(jì),2,完成本章內(nèi)容之后我們將能夠: 掌握與UI相關(guān)的API和組件 知道如何處理用戶的輸入 了解Series 60 和UIQ UI的相同和不同之處,本 章 目 標(biāo),3,概述,Series 60是Nokia創(chuàng)建的一系列開發(fā)人員平臺(tái)之一,它有幾個(gè)版本。1.0、1.1和1.2版本(統(tǒng)稱為Series 60平臺(tái)1.x)基于Symbian OS 6.1。本章描述的Series 60平臺(tái)2.0基于Symbian OS 7.0。平臺(tái)2.0引入的影響到應(yīng)用程序UI的主要功能是皮膚(skin)和雙向文本支持。皮膚允許用戶通過更改背景位圖、圖標(biāo)和顏色方案自定義UI。皮
2、膚在本章后面描述。雙向文本支持功能支持從右向左書寫的語言(例如希伯來語和阿拉伯語)的編輯和顯示。它也影響到整個(gè)UI中控件的順序和對(duì)齊方式。,4,概述,所有Series 60手機(jī)都使用一個(gè)允許在4個(gè)方向?qū)Ш?的導(dǎo)航控制器、一個(gè)確認(rèn)鍵和屏幕下面兩個(gè)稱為軟鍵 (softkey)的硬件按鈕。這些按鈕使Series 60手機(jī)易 于單手使用。用戶可以使用手機(jī)的鍵盤輸入文本并可 以選擇使用預(yù)測(cè)式文本輸入系統(tǒng)。 UIQ由UIQ Technology AB(Symbian Ltd的一家子 公司)生產(chǎn)。UIQ 1.0在2000年9月發(fā)布,此后還發(fā)布 了幾個(gè)版本。本章介紹運(yùn)行在Symbian OS 7.0上的 2.
3、1版本。,5,UIQ手機(jī)有一個(gè)大的觸摸屏(6cmScm或 4cm6cm),使用觸筆作為它們的主輸入設(shè)備。不 過,像Series 60一樣,所有UIQ手機(jī)都提供一個(gè)硬件 確認(rèn)鍵和其他導(dǎo)航硬件鍵,至少包括向上和向下鍵, 可選的包括向左和向右鍵,以便于單手瀏覽手機(jī)的內(nèi) 容。觸摸屏允許使用一些文本輸入方法(如手寫識(shí)別) 和一個(gè)屏幕虛擬鍵盤。 對(duì)于用戶,這些UI有很大差異,但是對(duì)于程序員, 它們有很多共同點(diǎn)。它們有同樣的基礎(chǔ)框架,這意味 著,為這兩種UI編寫的應(yīng)用程序具有同樣的結(jié)構(gòu)、應(yīng) 用程序基礎(chǔ)、文檔、app UI和視圖類。,概述,6,Series 60和UIQ都支持很多種設(shè)備。手機(jī)制造商可以 自定義
4、UI的風(fēng)格,例如圖標(biāo)、顏色方案、字體和文本, 但是運(yùn)行在同樣平臺(tái)的全部手機(jī)具有相同的基本屏幕布 局和UI組件。 自定義風(fēng)格 Symbian OS包括一個(gè)抽象風(fēng)格層,在一個(gè)稱為Uiklaf 的組件中由UI實(shí)現(xiàn)。Uikon使用這個(gè)組件得到關(guān)于UI的信 息。例如,Uiklaf定義UI的標(biāo)準(zhǔn)字體和控件周圍邊框的 外觀。在一些手機(jī)中,應(yīng)用程序也在移動(dòng)到背景之前簡 單淡出。這個(gè)行為在Uiklaf中定義。,屏幕布局,7,全部Uiklaf類有一個(gè)Laf前綴。它們只是打算在Uikon 內(nèi)部使用。 作為一個(gè)例外,淡出在其他情況中使用。例如在兩種 UI中,當(dāng)一個(gè)對(duì)話框顯示時(shí),前臺(tái)應(yīng)用程序都淡出;只 有在Series
5、 60中,當(dāng)菜單窗格顯示時(shí),它才淡出。,屏幕布局,8,Series 60 在Series 60中,屏幕分為3個(gè)區(qū)域或窗格(如圖3.1所 示)。這3個(gè)窗格稱為狀態(tài)窗格、主窗格和控制(或軟鍵) 窗格。,屏幕布局,9,狀態(tài)窗格 狀態(tài)窗格(通常顯示在屏幕的頂端)顯示前臺(tái)應(yīng)用程序的相關(guān)信息,包括它的標(biāo)題和圖標(biāo),以及手機(jī)相關(guān)的常規(guī)信息,例如信號(hào)強(qiáng)度。 它由6個(gè)子窗格組成。這些子窗格從左到右布局(或在某些情況下從右到左,例如在阿拉伯和希伯來布局中,其中許多控件的順序相反)。,屏幕布局,10,信號(hào)窗格(信號(hào)強(qiáng)度指示符)。 上下文窗格(顯示應(yīng)用程序的圖標(biāo))。 標(biāo)題窗格(顯示應(yīng)用程序的標(biāo)題)。 導(dǎo)航窗格(可以包含
6、選項(xiàng)卡、圖像或文本,或者為空)。 電池窗格(電池強(qiáng)度指示符)。 小指示符窗格(包含連接和一些其他指示符)。 其中,只有標(biāo)題窗格、上下文窗格和導(dǎo)航窗格可以由應(yīng)用程序編寫人員自定義。,屏幕布局,11,導(dǎo)航窗格默認(rèn)為空,但是它可以包含一個(gè)選項(xiàng)卡組,多頁對(duì)話框中表示當(dāng)前頁以及是否有更多視圖或頁。 在單一視圖應(yīng)用程序中,導(dǎo)航窗格可以包含一個(gè)標(biāo)簽或圖像,而不是一個(gè)選項(xiàng)卡組。當(dāng)視圖中的項(xiàng)是一個(gè)序列的一部分時(shí),這可以發(fā)揮作用。在這種情況下,左和右箭頭位圖可以說明有下一項(xiàng)或前一項(xiàng)。例如,日歷應(yīng)用程序在導(dǎo)航標(biāo)簽中顯示日期并使用這個(gè)標(biāo)簽進(jìn)行導(dǎo)航。,屏幕布局,12,當(dāng)應(yīng)用程序在文本編輯狀態(tài)時(shí),導(dǎo)航窗格自動(dòng)顯示一個(gè)編輯
7、指示符,說明輸入模式是數(shù)字還是字母,以及是大寫還是小寫(使用非西方語言的手機(jī)有不同的輸入模式)。 應(yīng)用程序的初始狀態(tài)窗格在應(yīng)用程序的EIK_APP_INFO資源(全部應(yīng)用程序的資源文件都需要)中定義。,屏幕布局,13,狀態(tài)窗格由STATUS_PANE_APP_MODEL資源定義,它的子窗格由SPANE_PANES定義。有下列類型的子窗格資源: TITLE_PANE??梢赃x擇包含圖標(biāo),而不用文本,但是不能兩者都包含。默認(rèn)是從它的aif文件讀取應(yīng)用程序的標(biāo)題。 CONTEXT_PANE。包含表示應(yīng)用程序的圖標(biāo)。這個(gè)圖標(biāo)顯示在標(biāo)題旁邊。默認(rèn)是從它的aif文件讀取應(yīng)用程序的圖標(biāo)。 NAVI_DECOR
8、ATOR。可以包含不同類型的控件,包括選項(xiàng)卡組(TAB_GROUP)、文本標(biāo)簽(NAVI_LABEL)或圖像(NAVI_IMAGE)。,屏幕布局,14,控制窗格 控制窗格包含軟鍵標(biāo)簽和滾動(dòng)指示符。軟鍵標(biāo)簽是一個(gè)字符串,通常是標(biāo)識(shí)與軟鍵關(guān)聯(lián)的操作的單一短字。 標(biāo)簽基于應(yīng)用程序的狀態(tài)而改變。常常,左側(cè)軟鍵標(biāo)記為“選項(xiàng)(Option)”,它激活菜單窗格。它也可以用于發(fā)出確認(rèn)的命令,例如“Ok”、“選擇”和“是”,而右側(cè)軟鍵用于“否”、“后退”、“取消”和“退出 (Exit)”命令。,屏幕布局,15,兩個(gè)軟鍵都使用CBA資源結(jié)構(gòu)來定義,該結(jié)構(gòu)包含定義 左側(cè)和右側(cè)軟鍵的兩個(gè)CBA_BUTTONS的數(shù)組。
9、這些結(jié)構(gòu)在 uikon.rh中聲明。 Series 60在avkon.rsg中聲明許多標(biāo)準(zhǔn)CBA資源,名稱 以R_AVKON_SOFTKEYS開始。可以重新使用這些資源或定 義自己的資源。,屏幕布局,16,例如,下面是Series 60對(duì)于“是”和“否”軟鍵的資源 定義: RESOURCE CBA_r avkon_softkeys_yes_no buttons= CBA_BUTTON id=EAknSoftkeyYes; txt=text_softkey_yes; , CBA_BUTTON id=EAknSoftkeyNo; txt=text_softkey_no; ; ,屏幕布局,17,tx
10、t和id字段用于定義軟鍵標(biāo)簽和它調(diào)用的命令I(lǐng)D。注 意,“是/否”文本在一個(gè)包含本地化文本字符串的單獨(dú) 文件中定義。 軟鍵發(fā)出的命令I(lǐng)D在avkon.hrh中定義。一些常見命令I(lǐng)D: EaknSoftkeyOk。 EaknSoftkeyCancel。 EaknSoftkeySelect。 EaknSoftkeyOptions。 EaknSoftkeyBack。 EakaSoftkeyDone。 EakaSoftkeyClose。 EaknSoftkeyExit。,屏幕布局,18,軟鍵可以在以下幾個(gè)位置定義: cba字段在EIK_APP_INFO資源中。 buttons字段在DIALOG資源中。
11、 cba字段在AVKON_VIEW資源中。 softkeys字段在AVKON_LIST_QUERY資源中。 softkeys字段AVKON_MULTIPLESELECTION_LIST_QUERY資源中。 應(yīng)用程序的初始軟鍵在EIK_APP_INFO資源中定義;常 常是“選項(xiàng)(Option)”和“退出 (Exit)”(R_AVKON_SOFTKEYS_OPTIONS_EXIT)。“選項(xiàng)”菜單窗格由EIK_APP_INFO的menubar字段定義。,屏幕布局,19,3.主窗格 這是狀態(tài)窗格和控制窗格之間的區(qū)域,通常是應(yīng)用程序可以進(jìn)行繪制的區(qū)域它是appUI的ClientRect()函數(shù)返回的區(qū)域
12、。 3.3.3UIQ UIQ中的屏幕分為5個(gè)區(qū)域(如圖3.2所示),其中之一的工具欄是可選的。,屏幕布局,20,屏幕布局,21,1應(yīng)用程序選取器 它用于在應(yīng)用程序間切換。最右邊的圖標(biāo)切換到應(yīng)用程序啟動(dòng)器,它提供對(duì)全部已安裝應(yīng)用程序的訪問。用戶可以更改在應(yīng)用程序選取器中顯示的應(yīng)用程序。,屏幕布局,22,2菜單欄 UIQ沒有控制窗格或軟鍵。它使用在應(yīng)用程序選取器下面總是可見的菜單欄。每個(gè)視圖一般具有它自己的菜單欄。大多數(shù)UIQ菜單欄有兩個(gè)左對(duì)齊菜單標(biāo)題和一個(gè)右對(duì)齊“文件夾”菜單。最左邊的標(biāo)題應(yīng)該是應(yīng)用程序的名 稱。它提供首要的菜單窗格,有標(biāo)準(zhǔn)功能如“新建”、“查找”和“另存為”。右邊的下一個(gè)菜單標(biāo)
13、題(如果不需要,可以被忽略)通常提供標(biāo)準(zhǔn)“編輯”命令,如“剪切”、“復(fù)制”、“粘貼”和“縮放”。UIQ菜單窗 格應(yīng)該簡短并且不使用級(jí)聯(lián)菜單窗格。如果菜單窗格包含比適當(dāng)屏幕更多的項(xiàng),將添加一個(gè)滾動(dòng)欄,不過,應(yīng)該避免這樣做。,屏幕布局,23,注意,UIQ菜單不包括“退出”或“關(guān)閉”選項(xiàng);除了在調(diào)試生成中,對(duì)于檢查應(yīng)用程序在關(guān)閉時(shí)是否釋放全部資源,它可能有用。它們也不應(yīng)該提供“保存”選項(xiàng);UIQ應(yīng)用程序應(yīng)該不需要用戶干預(yù),就可以保存它們 的數(shù)據(jù)。,屏幕布局,24,本節(jié)介紹如何定義、創(chuàng)建和使用兩種UI中都存在的UI組件,包括兩種實(shí)現(xiàn)之間的差異。 3.4.1菜單欄 菜單在資源文件中定義,由下列四個(gè)組件組
14、成: 菜單欄在UIQ中是一個(gè)包含菜單標(biāo)題的水平欄。在Series 60中,它從不顯示。它使用一個(gè)MENU_BAR資源定義(在C+中使用CEikMenuBar)。 菜單標(biāo)題。這些標(biāo)題定義一個(gè)菜單窗格,在UIQ中,定義菜單欄中顯示的文本。它們由MENU_TITLE資源定義。注意,在Series 60中,在控制窗格中顯示的標(biāo)簽不在ENU_TITLE資源中定義,而是在定義軟鍵的CBA資源中定義。,常見UI組件,25,菜單窗格,是當(dāng)用戶在UIQ中選擇菜單標(biāo)題或在Series 60中選擇“選項(xiàng)”軟鍵時(shí)顯示的菜單項(xiàng)垂直列表。它們由MENU_PANE資源定義(在C+中使用 CEikMenuPane)。Seri
15、es60和UIQ都支持級(jí)聯(lián)菜單窗格,盡管在UIQ中已淘汰。 菜單項(xiàng),是菜單窗格中可以由用戶選擇的項(xiàng)。它們由MENU_ITEM資源定義,與顯示在菜單窗格中的標(biāo)簽和選擇該項(xiàng)時(shí)發(fā)出的命令I(lǐng)D關(guān)聯(lián)。,常見UI組件,26,UIQ中的菜單欄總是可見。它支持多菜單標(biāo)題,每個(gè)標(biāo)題與一個(gè)菜單窗格關(guān)聯(lián)。在Series 60中,使用控制窗格,而不是菜單欄。不過,在大多數(shù)Series 60應(yīng)用程序中,菜單欄仍然需要定義,因?yàn)樗x“選項(xiàng)”軟鍵激活的菜單窗格。 在Series 60和UIQ中,當(dāng)應(yīng)用程序啟動(dòng)時(shí),使用的初始菜單欄在EIK_APP_INFO資源結(jié)構(gòu)中的menubar字段中定 義。,常見UI組件,27,不同的
16、視圖通常需要不同的菜單欄,因此當(dāng)視圖更改時(shí),菜單欄也應(yīng)該更改。在UIQ中,菜單欄切換在視圖的ViewActivatedL()函數(shù)中進(jìn)行,使用如下代碼: MEikAppUiFactory* factory=iEikonEnv-AppUiFactory(); factory-MenuBar()-ChangeMenuBarL(0,R_NEW_MENUBAR, EFalse); CEikMenuBar:ChangeMenuBarL()的第二個(gè)參數(shù)是新視圖菜單欄的資源ID。另外兩個(gè)參數(shù)在UIQ中不使用。,常見UI組件,28,在Series 60中,如果需要?jiǎng)討B(tài)更改菜單欄,可以使用 如下代碼: MEikA
17、ppUiFactory* factory=iEikonEnv-AppUiFactory(); factory-MenuBar()-SetMenuTitleResourceId(R_NEW_MENUBAR); 與UIQ不同,Series 60不實(shí)現(xiàn)CEikMenuBar:ChangeMenuBarL();你必須使用SetMenu TitleResourceId()。,常見UI組件,29,然而,對(duì)于在視圖特定的菜單欄之間的切換,Series60通常使用不同的方案。Series 60視圖由AVKON_VIEW資源定義,與視圖關(guān)聯(lián)的菜單欄和軟鍵在資源中定義: STRUCT AVKON_ VIEW LL
18、INK hotkyes=0; LLINK menubar=0; LLINK cba=0; ,常見UI組件,30,在視圖的ConstructL()中,調(diào)用 CAknView:BaseConstructL(),給它傳遞AVKON_VIEW資源的ID。當(dāng)視圖激活時(shí),自動(dòng)使用它的菜單欄和軟鍵。 在Series 60中,對(duì)話框可以定義它們自己的菜單欄。Series 60對(duì)話框基類CAknDialog擁有一個(gè)菜單欄,該菜單欄的資源ID在構(gòu)造對(duì)話框時(shí)定義。該對(duì)話框使用的軟鍵在DIALOG資源的buttons字段中定義。當(dāng)該對(duì)話框啟動(dòng)時(shí),它的軟鍵標(biāo)簽改寫以前顯示的標(biāo)簽,將它的菜單欄添加到控件棧,以便它在現(xiàn)有菜
19、單欄之前接收鍵事件。注意,不需要“選項(xiàng)”菜單窗格的Series 60對(duì)話框可以從CeikDialog派生。,常見UI組件,31,窗體(CAknForm)是一種派生于CAknDialog的對(duì)話框。窗體提供它們自己的默認(rèn)菜單欄和菜單窗格。列表查詢對(duì)話框(CAknListQueryDialog)也派生于CAknDialog。它們由AVKON_LIST_QUERY資源定義(使用一個(gè)名為softkeys的字段而不是buttons來定義它的軟鍵)。對(duì)話框和窗體我們將在本章后面介紹。,常見UI組件,32,3.4.2 菜單窗格 菜單窗格的內(nèi)容可能也需要根據(jù)應(yīng)用程序的狀態(tài)更改。 使菜單項(xiàng)可用或不可用的的函數(shù)是 CEikMenuPane:SetItemDimmed()。在UIQ中,用ETrue調(diào)用這個(gè)函數(shù),導(dǎo)致該項(xiàng)保留在菜單中,但是它顯示為淺灰色。在Series 60中,為了保存屏幕空間并使菜單導(dǎo)航更快,該菜單項(xiàng)被移除。再次用EFalse調(diào)用該函數(shù)取消淺灰色或?qū)е滤匦鲁霈F(xiàn)。,常見UI組件,33,另一方面,CEikMen
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年洗胃過程觀察與病情監(jiān)測(cè)試題含答案
- 2026年港股通標(biāo)的ESG投資考量試題含答案
- 集團(tuán)設(shè)備管理制度范本
- 蓋州事故警示教育講解
- 迎大慶樹形象比貢獻(xiàn)活動(dòng)實(shí)施方案
- 2026年劇本殺運(yùn)營公司新服務(wù)項(xiàng)目研發(fā)管理制度
- 四川省遂寧市2026屆高三一診考試英語試題(含答案無聽力音頻無聽力原文)
- 2026年智能家電行業(yè)創(chuàng)新報(bào)告及物聯(lián)網(wǎng)技術(shù)應(yīng)用分析報(bào)告
- 2025年智能養(yǎng)老社區(qū)綜合服務(wù)技術(shù)創(chuàng)新與養(yǎng)老社區(qū)社區(qū)共建體系可行性研究
- 2026年虛擬現(xiàn)實(shí)內(nèi)容生態(tài)報(bào)告及未來五至十年用戶體驗(yàn)報(bào)告
- 2026年孝昌縣供水有限公司公開招聘正式員工備考題庫及答案詳解參考
- 2025年文化產(chǎn)業(yè)版權(quán)保護(hù)與運(yùn)營手冊(cè)
- 《創(chuàng)新創(chuàng)業(yè)基礎(chǔ)》課件-項(xiàng)目1:創(chuàng)新創(chuàng)業(yè)基礎(chǔ)認(rèn)知
- (37)-24.1.4黃芪中藥中醫(yī)學(xué)課件
- 高中生物競(jìng)賽課件:蛋白質(zhì)的性質(zhì)與分離、分析技術(shù)
- 刑法學(xué)(上冊(cè))馬工程課件 第1章 刑法概說
- GB/T 5657-2013離心泵技術(shù)條件(Ⅲ類)
- GB/T 40923.1-2021滑雪單板固定器安裝區(qū)第1部分:無嵌件滑雪單板的要求和試驗(yàn)方法
- 《紅樓夢(mèng)中的禮儀習(xí)俗研究報(bào)告》
- CB/T 3046-1992船用充放電板
- 教師心理健康輔導(dǎo)講座二
評(píng)論
0/150
提交評(píng)論