Android系統(tǒng)平臺真的那么強(qiáng)大嗎
在實現(xiàn)了Android系統(tǒng)平臺的強(qiáng)大性,現(xiàn)就將引擎的前兩個元素即攝像頭與指南針之后,下一步要做的就是確定位置,要想更好的完成這一項目,我們主要用到Android的LocationManager對象。
一旦Android系統(tǒng)平臺獲得了根節(jié)點的參數(shù),它就可以直接通過節(jié)點來無效化,測距和繪制樹。當(dāng)你的Activity被激活并且獲得焦點時。系統(tǒng)會通知你的activity并且請求根節(jié)點去測距并繪制樹,根節(jié)點就會請求它的子節(jié)點去繪制它們自己,同時,每個樹上的viewgroup節(jié)點負(fù)責(zé)繪制它的直接子節(jié)點。
正如之前提到的,每個viewgroup都有測量它的有效空間,布局它的子對象,并且調(diào)用每個子對象的Draw()方法去繪制它們自己。子對象可能會請求獲得一個它們在父對象中的大小和位置,但是父對象對于每個子對象的大小和位置有最終的決定權(quán)。
LayoutParams:一個子對象如何指定它的位置和大小每個viewgroup類都會使用一個繼承于Viewgroup.LayoutParams的嵌套類。這個子類包含了一系列的屬性類型,這些屬性類型定義一個子對象位置和大小,與viewgroup類相適應(yīng)。layoutparams的一個樣例:
要注意的是,每個LayoutParams子類都有它自己賦值的語法。每個子元素必須定義適用于它們父對象的LayoutParams,盡管父對象可能會為子元素定義不同的LayoutParams。所有的viewgroup都包括寬和高。
很多還包括邊界的定義(margin和border)。你可以非常精確地描述寬和高,盡管你并不想經(jīng)常這么做。更多時候你希望你的view自行調(diào)整到適應(yīng)內(nèi)容大小,或者適應(yīng)容器大小。
是最簡單的一個布局對象。它被定制為你屏幕上的一個空白備用區(qū)域,之后你可以在其中填充一個單一對象—比如,一張你要發(fā)布的圖片。所有的子元素將會固定在屏幕的左上角;
你不能為FrameLayout中的一個子元素指定一個位置。后一個子元素將會直接在前一個子元素之上進(jìn)行覆蓋填充,把它們部份或全部擋?。ǔ呛笠粋€子元素是透明的)。 以你為它設(shè)置的垂直或水平的屬性值,來排列所有的子元素。
所有的子元素都被堆放在其它元素之后,因此一個垂直列表的每一行只會有一個元素,而不管他們有多寬,而一個水平列表將會只有一個行高(高度為***子元素的高度加上邊框高度)。LinearLayout保持子元素之間的間隔以及互相對齊(相對一個元素的右對齊、中間對齊或者左對齊)。
Android系統(tǒng)平臺還支持為單獨的子元素指定weight。好處就是允許子元素可以填充屏幕上的剩余空間。這也避免了在一個大屏幕中,一串小對象擠成一堆的情況,而是允許他們放大填充空白。
子元素指定一個weight值,剩余的空間就會按這些子元素指定的weight比例分配給這些子元素。默認(rèn)的weight值為0。例如,如果有三個文本框,其中兩個指定了weight值為1,那么,這兩個文本框?qū)⒌缺壤胤糯?,并填滿剩余的空間,而第三個文本框不會放大。
【編輯推薦】