|
> 注意每個布局參數(shù)子類有自己的設(shè)置值的格式語法,每個子元素必須定義適合父view的布局參數(shù),盡管他為自己的子view也定義了不同的布局參數(shù)。所有的viewGroup都包含了寬高屬性,而且必須定義它們。很多布局參數(shù)也包含了可選的間隙參數(shù)和邊界參數(shù)。你可以用精確的值來定義寬高,盡管你并不希望經(jīng)常這樣做。更多的時候,你會這樣來定義:@ wrap_content 只占用所需要的尺寸@ fill_parent 占用父viewGroup可能的最大尺寸。(在API Level 8 里更名為 match_parent)通常, 不建議使用像素值來定義寬高值,我們經(jīng)常用相對的單位,如與密度無關(guān)的像素單元(dp),或者warp_content或者fill_parent來代替,這樣能確保你的程序能運行在大量不同尺寸的設(shè)備上。公認的測量類型在 Available Respurces 文檔里被定義。
view是一個矩形,每個view都有一個位置,包含x,y起始坐標(biāo)和寬高來確定這個矩形的位置。位置和尺寸的單位是像素pixel。通過調(diào)用getLeft()和getTop()方法可以獲得view 的位置,兩個方法返回矩形的左上角的坐標(biāo)xy。這些方法返回的是相對于父view的方位。比如,getLeft()返回20,那么他的右邊距離父view左邊有20個像素。此外,有很多方便的方法,都是為了減少不必要的計算,像getRight()和 getBOTTom()。(getRight()=getLeft()+getWidth())
一個view的大小即他的寬高。一個view 實際上有兩套高度寬度值。第一對值是我們都知道的measured width和measured 高度即測量寬度和測量高度。這組值定義了他們想在父view中有多大,通過 getMeasuredWidth() 和 getMeasuredHeight() 可以獲得他們。第二組值為width和height,或者成為 drawing width 和drawing height。這組值定義了view再被繪制到屏幕后,在屏幕中的實際大小。這些值有可能會和第一組值大小不同。通過getWidth()和getHeight()方法可以獲得。為了得到view 的實際尺寸,必須考慮到他的填充。padding屬性表示view的左上右下的像素間隙。通過設(shè)置一些像素值,padding屬性被用來填充視圖內(nèi)容周圍。例如,把left padding 設(shè)置為2,則view左邊 與其父view的左邊會有2個像素的間隙。通過setPadding(int,int,int,int)方法和getPaddingLeft()getPaddingRight()getPaddingTop()getPaddingBotton()方法設(shè)置和獲得。盡管一個view可以定義padding,但他不支持margins屬性,但是viewGroup支持。參考 ViewGroup和ViewGroup.marginlayoutParams類來獲得更多信息。
|
上一篇: 《Android Dev Guide》系列教程10:用戶界面之創(chuàng)建菜單下一篇: 《Android Dev Guide》系列教程8:用戶界面
|