Android 布局

线性布局 LinearLayout

布局决定页面里内容的排布方式

布局文件位于layout文件夹下

线性布局(LinearLayout):可添加子类控件

LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列

LinearLayout 常用的两个属性:
android:orientation= "vertical" 该属性决定他子类控件的排布方式(vertical:垂直;horizontal:水平)

android:gravity= "center" 该属性决定他之类的XY的位置 常用到的几个属性值:
1. center_vertical: (垂直(Y轴)居中)
2. center_horizonral:水平(X轴)居中 
3. center:水平垂直都居中
4. Bottom:布局的下面
5. Left:布局的左边
6. Right:布局的右边

注意:gravity属性在赋值中可以多添加形式,组合成多个属性,决定子类xy的位置,一般放在父容器中赋值
android:gravity="bottom/center_horizontal" 代表所属子类控件排列既处于父容器水平居中又处于底部

子类控件在LinearLayout中常用到的属性:

android:layout_gravity="buttom" --- 指本身在当前父容器的xy的一个位置
android:layout_weight="1" ---- 指本身控件占当前父容器的一个比例(重要),使用时主要,子类控件属性:android:layout_height="wrap_content"代表实际比例,如果赋值是:android:layout_height="match_parent",则是相反比例

 tips:布局可以套用布局。

 

相对布局 RelativeLayout

1.RelativeLayout是相对布局控件,它包含的子控件将以控件之间的相对位置或者子类控件相对父类容器的位置的方式排列

2.常用到的属性(相对父容器的一个位置)
android:layout_alignParentLeft="true" -- 子类控件相对当前父类容器靠左边
android:layout_alignParentTop="true" -- 子类控件相对当前父类容器靠上边
android:layout_marginLeft="41dp" -- 子类控件距离父类容器左边的距离
android:layout_marginTop="33dp" -- 子类控件距离父类容器上边的距离
android:layout_centerInParent="true" -- 子类控件相对父类容器既水平居中又垂直居中
android:layout_centerHorizontal="true" -- 子类控件相对父类容器水平居中
android:layout_centerVertical="true" -- 子类控件相对父类容器垂直居中

3.子类控件相对子类控件的一个位置

android:layout_below="@+id/button1" -- 该控件位于给定id控件的底部
android:layout_toRightOf="@+id/button1" -- 该控件位于给定id控件的右边
android:layout_above="@+id/button1" -- 该控件位于给定id控件的上面
android:layout_toLeftOf="@+id/button1" -- 该控件位于给定id控件的左边
android:layout_alignBaseline="@+id/button1" -- 该控件的内容与给定id控件的内容在一条线上
android:layout_alignBottom -- 该控件的底部边缘与给定ID控件的底部边缘对齐
android:layout_alignLeft -- 该控件的左边缘与给定ID控件的左边缘对齐
android:layout_alignRight -- 该控件的右边缘与给定ID控件的右边缘对齐
android:layout_alignTop -- 该控件的顶部边缘与给定ID控件的顶部边缘对齐

 

帧布局 FrameLayout

在这个布局中,所有元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。

使用android:foregroundGravity  定义绘制的前景图片的gravity属性
使用android:keepScreenOn  保持常亮
使用android:background  设置背景
使用android:foreground  设置前景图,在所有子视图的前面

 

绝对布局 AbsoluteLayout

又可以叫做坐标布局,可以直接指定子元素的绝对位置(xy)

由于手机屏幕尺寸差别比较大,使用绝对定位的适应性会比较差,在屏幕的适配上有缺陷

AbsoluteLayout常用子类控件的属性:

android:layout_x="35dp"  控制当前子类控件的x位置

android:layout_y="40dp"  控制当前子类控件的y位置

 

表格布局 TableLayout

TableLayout表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。

TableLayout的属性(全局属性):

1. android:collapseColumns= "1,2"

隐藏从0开始的索引列。列之间必须用逗号隔开:1,2,5

2. android:shrinkColumns="1,2"

收缩从0开始的索引列。当可收缩的列太宽(内容过多)不会被挤出屏幕,列之间必须用逗号隔开:1,2,5

可以用*代替收缩所有列。注意一列能同时表示收缩和拉伸

3. stretchColumns= "1,2"   

拉伸从0开始的索引列。以填满剩下的多余空白控件

可以用*代替收缩所有列。注意一列能同时表示收缩和拉伸

 

TableLayout的局部属性(内部控件所用属性):

android:layout_column="1"  该控件显示在第2列

android:layout_span="2"  该控件占据2列

 

posted @ 2016-07-06 11:43  sinpi  阅读(153)  评论(0)    收藏  举报