資源描述:
《第5章Android用戶界面》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、第5章Android用戶界面本章學(xué)習(xí)目標(biāo)了解各種用戶界面的控件的使用方法掌握各種界面布局的特點(diǎn)和使用方法掌握選項(xiàng)菜單、子菜單和快捷菜單的使用方法掌握按鍵事件和觸摸事件的處理方法5.1用戶界面基礎(chǔ)用戶界面(UserInterface,UI)是系統(tǒng)和用戶之間進(jìn)行信息交換的媒介,實(shí)現(xiàn)信息的內(nèi)部形式與人類可以接受形式之間的轉(zhuǎn)換在計(jì)算機(jī)出現(xiàn)早期,批處理界面(1945-1968)和命令行界面(1969-1983)得到廣泛的使用目前,流行圖像用戶界面(GraphicalUserInterface,GUI),采
2、用圖形方式與用戶進(jìn)行交互的界面未來的用戶界面將更多的運(yùn)用虛擬現(xiàn)實(shí)技術(shù),使用戶能夠擺脫鍵盤與鼠標(biāo)的交互方式,而通過動(dòng)作、語言,甚至是腦電波來控制計(jì)算機(jī)5.1用戶界面基礎(chǔ)設(shè)計(jì)手機(jī)用戶界面應(yīng)解決的問題需要界面設(shè)計(jì)與程序邏輯完全分離,這樣不僅有利于他們的并行開發(fā),而且在后期修改界面時(shí),也不用再次修改程序的邏輯代碼根據(jù)不同型號(hào)手機(jī)的屏幕解析度、尺寸和縱橫比各不相同,自動(dòng)調(diào)整界面上部分控件的位置和尺寸,避免因?yàn)槠聊恍畔⒌淖兓霈F(xiàn)顯示錯(cuò)誤能夠合理利用較小的屏幕顯示空間,構(gòu)造出符合人機(jī)交互規(guī)律的用戶界面,避免
3、出現(xiàn)凌亂、擁擠的用戶界面Android已經(jīng)解決了前兩個(gè)問題,使用XML文件描述用戶界面;資源資源文件獨(dú)立保存在資源文件夾中;對(duì)界用戶面描述非常靈活,允許不明確定義界面元素的位置和尺寸,僅聲明界面元素的相對(duì)位置和粗略尺寸5.1用戶界面基礎(chǔ)Android用戶界面框架Android用戶界面框架(AndroidUIFramework)采用MVC(Model-View-Controller)模型提供了處理用戶輸入的控制器(Controller)顯示用戶界面和圖像的視圖(View),以及保存數(shù)據(jù)和代碼的模型
4、(Model)5.1用戶界面基礎(chǔ)Android用戶界面框架MVC模型MVC模型中的控制器能夠接受并響應(yīng)程序的外部動(dòng)作,如按鍵動(dòng)作或觸摸屏動(dòng)作等控制器使用隊(duì)列處理外部動(dòng)作,每個(gè)外部動(dòng)作作為一個(gè)對(duì)立的事件被加入隊(duì)列中,然后Android用戶界面框架按照“先進(jìn)先出”的規(guī)則從隊(duì)列中獲取事件,并將這個(gè)事件分配給所對(duì)應(yīng)的事件處理函數(shù)5.1用戶界面基礎(chǔ)Android用戶界面框架Android用戶界面框架(AndroidUIFramework)采用視圖樹(ViewTree)模型Android用戶界面框架中的界面
5、元素以一種樹型結(jié)構(gòu)組織在一起,稱為視圖樹Android系統(tǒng)會(huì)依據(jù)視圖樹的結(jié)構(gòu)從上至下繪制每一個(gè)界面元素。每個(gè)元素負(fù)責(zé)對(duì)自身的繪制,如果元素包含子元素,該元素會(huì)通知其下所有子元素進(jìn)行繪制5.1用戶界面基礎(chǔ)Android用戶界面框架視圖樹視圖樹由View和ViewGroup構(gòu)成View是界面的最基本的可視單元,存儲(chǔ)了屏幕上特定矩形區(qū)域內(nèi)所顯示內(nèi)容的數(shù)據(jù)結(jié)構(gòu),并能夠?qū)崿F(xiàn)所占據(jù)區(qū)域的界面繪制、焦點(diǎn)變化、用戶輸入和界面事件處理等功能View也是一個(gè)重要的基類,所有在界面上的可見元素都是View的子類Vie
6、wGroup是一種能夠承載含多個(gè)View的顯示單元ViewGroup功能:一個(gè)是承載界面布局,另一個(gè)是承載具有原子特性的重構(gòu)模塊5.1用戶界面基礎(chǔ)Android用戶界面框架單線程用戶界面在單線程用戶界面中,控制器從隊(duì)列中獲取事件和視圖在屏幕上繪制用戶界面,使用的都是同一個(gè)線程特點(diǎn):處理函數(shù)具有順序性,能夠降低應(yīng)用程序的復(fù)雜程度,同時(shí)也能減低開發(fā)的難度缺點(diǎn):如果事件處理函數(shù)過于復(fù)雜,可能會(huì)導(dǎo)致用戶界面失去響應(yīng)5.2界面控件Android系統(tǒng)的界面控件分為定制控件和系統(tǒng)控件定制控件是用戶獨(dú)立開發(fā)的控
7、件,或通過繼承并修改系統(tǒng)控件后所產(chǎn)生的新控件。能夠?yàn)橛脩籼峁┨厥獾墓δ芑蚺c眾不同的顯示需求方式系統(tǒng)控件是Android系統(tǒng)提供給用戶已經(jīng)封裝的界面控件。提供在應(yīng)用程序開發(fā)過程中常見功能控件。系統(tǒng)控件更有利于幫助用戶進(jìn)行快速開發(fā),同時(shí)能夠使Android系統(tǒng)中應(yīng)用程序的界面保持一致性常見的系統(tǒng)控件包括TextView、EditText、Button、ImageButton、Checkbox、RadioButton、Spinner、ListView和TabHost5.2界面控件5.2.1TextVi
8、ew和EditTextTextView是一種用于顯示字符串的控件EditText則是用來輸入和編輯字符串的控件EditText是一個(gè)具有編輯功能的TextView5.2界面控件5.2.1TextView和EditText建立一個(gè)“TextViewDemo”的程序,包含TextView和EditText兩個(gè)控件上方“用戶名”部分使用的是TextView,下方的文字輸入框使用的是EditText5.2界面控件5.2.1TextView和EditTextTextViewDemo在XML文件中的代碼