|
> 注意每个布局参数子类有自己的设置值的格式语法,每个子元素必须定义适合父view的布局参数,尽管他为自己的子view也定义了不同的布局参数。所有的viewGroup都包含了宽高属性,而且必须定义它们。很多布局参数也包含了可选的间隙参数和边界参数。你可以用精确的值来定义宽高,尽管你并不希望经常这样做。更多的时候,你会这样来定义:@ wrap_content 只占用所需要的尺寸@ fill_parent 占用父viewGroup可能的最大尺寸。(在API Level 8 里更名为 match_parent)通常, 不建议使用像素值来定义宽高值,我们经常用相对的单位,如与密度无关的像素单元(dp),或者warp_content或者fill_parent来代替,这样能确保你的程序能运行在大量不同尺寸的设备上。公认的测量类型在 Available Respurces 文档里被定义。
view是一个矩形,每个view都有一个位置,包含x,y起始坐标和宽高来确定这个矩形的位置。位置和尺寸的单位是像素pixel。通过调用getLeft()和getTop()方法可以获得view 的位置,两个方法返回矩形的左上角的坐标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的左上右下的像素间隙。通过设置一些像素值,padding属性被用来填充视图内容周围。例如,把left padding 设置为2,则view左边 与其父view的左边会有2个像素的间隙。通过setPadding(int,int,int,int)方法和getPaddingLeft()getPaddingRight()getPaddingTop()getPaddingBotton()方法设置和获得。尽管一个view可以定义padding,但他不支持margins属性,但是viewGroup支持。参考 ViewGroup和ViewGroup.marginlayoutParams类来获得更多信息。
|
上一篇: 《Android Dev Guide》系列教程10:用户界面之创建菜单下一篇: 《Android Dev Guide》系列教程8:用户界面
|