安卓的布局:
1.线性布局:按照垂直或者水平的方向布局的组件。
2.相对布局:相对于其他的组件的布局的方式。
3.绝对布局:按照绝对坐标来布局的组件。
4.表格布局:按照行列方式布局的组件。
5.帧布局:组件从屏幕左上方布局组件。
线性布局:
是安卓开发中间最常用的一种布局方式,他是按照垂直或者水平方向来布局,通过"android:orientation"属性可以设置成线性布局的方向。属性值有垂直和水平两种。
常用属性:
android:orientation:可以设置布局的方向。
android:gravity:用来控制组件的对其方式。
layout_weight:控制各个组件在布局中的相对大小。
2.相对布局RelativeLayout:
RelativeLayout按照各个子元素之间的位置完成布局。在这个布局中子元素的属性将生效。例如,android:layout_bwlow和android:layout_ablove等。子元素就通过这些素材和鸽子的ID配合指定位置关系。注意在指定的位置关系时,引用的ID必须在引用之前,先被定义,否则将出现异常。
RelativeLayout里面常用的属性如下:
android:layout_toLeftOf位于组件的左边
android:layout_toRightOf位于组件的右侧
android:layout_above该组件位于组件的上方
android:layout_below该组件位于组件的下方
android:layout_alignParentLeft该组件是否对其父组件的左端
android:layout_alignParentRight该组件是否对其父组件的右端
android:layout_alignParentTop该组件是否对其父组件的顶部
android:layout_alignParentBottom该组件是否对其父组件的底部
android:layout_centerInParent该组件是否相对于父组件居中
android:layout_centerHorizontal该组件是否横向居中
android:layout_centerVertical该组件是否垂直居中
3.绝对布局:AbsoluteLayout:是绝对布局,在这个布局中的子元素的android:layout_x和android:layout_y属性讲生效,用于描述该子元素的坐标位置。屏幕左上角为坐标原点,第一个0表示横坐标,第二个表示纵坐标,向上移动,此值增大。在这个布局中的子元素可以相互重叠。在时机开发中,通常不采用这个布局。因为他的布局代码过于刚性。不能很好匹配各种终端。
4.表单布局:TableLayout,这个布局就是表单布局,适用于N行N列的布局格式。一个TableLayout由许多的TalbeRow组成,一个TableRow就代表TableLayout中一行。
TableRow是LinearLayout的子类,他的android:orientation属性值就为horizontal,并且他的android:llayout_wdith和android:layout_height属性是match_parent和wrap_content。所以他的子元素就是横向排列,并且宽高是一致的。这样子的设计使得每一个tableRow里面的子元素相当于表格的单元格一样。在TableRow中,单元格可以为空,但是不能跨列。
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
</TableRow>
5.帧布局:Framelayout是5个最简单的一个,在这个布局中,整个界面被当做一个空白的区域来使用,所有的子元素都不能被指定放置的位置,他们统统的放在这个区域的左上角的这个位置。然后将之前的那个元素遮挡住。第二个遮挡住第一个,第三个遮挡住第二个。
安卓中的android:layout_width和andoird:layout_height的区别:
1.每一个View必须要定义两个属性是layout_width和layout_height,这两个属性的值只能在match_parent和wrap_content和fill_parent之间选择一个。注意:match_parent和fill_parent实际上是一样的效果,可以在ViewGroup的内部类中间找到定义。均为-1。
2.fill_parent和match_parent这两种方式是代表view的宽或者高将会和父控件的宽高相等,wrap_content这种方式代表这个view的宽高将会按照内部的内容来决定。
3.orientation如果是水平方向的话,那么layout_weight就是水平方向的比例大小,竖直方向的话同理。
4.android:width和android:height的话,即使具有这两种属性,也不用声明。用于控制view的精确大小。如:64dp,1px。在TextView中可以找到这个属性,但是一般不用。只有在精确定义的时候才会用到。
5.android:gravity这个是针对控件的元素来说的,用来控制元素在该控件的显示位置,例如,在一个button按钮控件中设置两个属性。
android:gravity="left"和android:text="提交",这个时候button上的文字,android:layout_gravity,用来控制控件在包含该控件的斧控件中的位置,同样,当我们在button按钮控件中设置android:layout_gravity="left"属性的时候,表示button按钮讲位于界面的左部。