對(duì)Android窗體的組成部分進(jìn)行研究分析
Android窗體作為谷歌企業(yè)戰(zhàn)略的重要組成部分,一個(gè)可擴(kuò)展的視圖(Views )可以用來(lái)建應(yīng)用程序,包括列表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons),甚至包括一個(gè)可嵌入的web瀏覽器 。
文本框的width被設(shè)置為FILL_PARENT;其它元素的width被設(shè)置為WRAP_CONTENT。默認(rèn)的對(duì)齊方式為左對(duì)齊。左邊的窗體沒(méi)有設(shè)置weight(默認(rèn)為0);右邊的窗體的comments文本框weight被設(shè)置為1。如果Name文本框也被設(shè)置為1,那么Name和Comments這兩個(gè)文本框?qū)?huì)有同樣的高度。
在一個(gè)水平排列的LinearLayout中,各項(xiàng)按他們的文本基線(xiàn)進(jìn)行排列(第一列第一行的元素,即最上或最左,被設(shè)定為參考基線(xiàn))。因此,人們?cè)谝粋€(gè)窗體中檢索元素時(shí),就不需要七上八下地讀元素的文本了。我們可以在layout的XML中設(shè)置來(lái)關(guān)閉這個(gè)設(shè)置。
Android窗體的一個(gè)TableLayout由許多的TableRow組成,每個(gè)TableRow都會(huì)定義一個(gè)row(事實(shí)上,你可以定義其它的子對(duì)象,這在下面會(huì)解釋到)。TableLayout容器不會(huì)顯示row、cloumns或cell的邊框線(xiàn)。每個(gè)row擁有0個(gè)或多個(gè)的cell;每個(gè)cell擁有一個(gè)View對(duì)象。
表格由列和行組成許多的單元格。表格允許單元格為空。單元格不能跨列,這與HTML中的不一樣。下圖顯示了一個(gè)TableLayout,圖中的虛線(xiàn)代表不可視的單元格邊框。這個(gè)視圖顯示了屏幕元素的類(lèi)名稱(chēng),下面是每個(gè)元素的屬性列表。這些屬性一部份是由元素直接提供,另一部份是由容器的LayoutParams成員(RelativeLayout的子類(lèi))提供。
RelativeLayout參數(shù)有width,height,below,alignTop,toLeft,padding和marginLeft。注意,這些參數(shù)中的一部份。其值是相對(duì)于其它子元素而言的,所以才RelativeLayout。這些參數(shù)包括toLeft,alignTop和below,用來(lái)指定相對(duì)于其它元素的左,上和下的位置。
它采用了軟件堆層(software stack,又名軟件疊層)的架構(gòu),主要分為三部分:底層以L(fǎng)inux核心為基礎(chǔ),由c語(yǔ)言開(kāi)發(fā),只提供基本功能。中間層包括函數(shù)庫(kù)Library和虛擬機(jī)Virtual Machine,由C+開(kāi)發(fā)。最上層是各種應(yīng)用軟件,包括通話(huà)程序,短信程序等,應(yīng)用軟件則由各公司自行開(kāi)發(fā),以java編寫(xiě)。
為了推廣此技術(shù),Google和其它幾十個(gè)手機(jī)公司建立了開(kāi)放手機(jī)聯(lián)盟(Open Handset Alliance)。Android窗體作為谷歌企業(yè)戰(zhàn)略的重要組成部分,將進(jìn)一步推進(jìn)“隨時(shí)隨地為每個(gè)人提供信息”這一企業(yè)目標(biāo)的實(shí)現(xiàn)。
全球?yàn)閿?shù)眾多的移動(dòng)電話(huà)用戶(hù)正在使用各種基于 Android 的電話(huà)。谷歌的目標(biāo)是讓?zhuān)ㄒ苿?dòng)通訊)不依賴(lài)于設(shè)備甚至平臺(tái)。出于這個(gè)目的,Android 將補(bǔ)充,而不會(huì)替代谷歌長(zhǎng)期以來(lái)奉行的移動(dòng)發(fā)展戰(zhàn)略:通過(guò)與全球各地的手機(jī)制造商和移動(dòng)運(yùn)營(yíng)商結(jié)成合作伙伴,開(kāi)發(fā)既有用又有吸引力的移動(dòng)服務(wù),并推廣這些產(chǎn)品。
【編輯推薦】