您的位置:首页 > 其它

安卓学习之路10之布局篇

2015-12-16 10:06 218 查看
第一种:LinearLayout(线性布局)

1.概念

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

2.常用属性

android:orientation = "vertical" ---决定他子类控件的排布方式(vertical 或 horizontal)

android:gravity = "center"

---该属性决定他子类的xy的位置

(常用到的几个属性值:

1>center_vertical:垂直(Y轴)居中

2>center_horizontal:水平(X轴)居中

3>center:水平垂直都居中

4>right:子类控件位于当前布局的右边

5>left:子类控件位于当天布局的左边

6>bottom:子类控件位于当前布局的下边



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

android:layout_gravity = "bottom"----指子类控件本身在当前父容器的XY的一个位置

android:layout_weight = "1" ----指本身控件占当前父容器的一个比例

注意:如果layout_height=wrap_content,就按比例显示;

如果layout_height=match_parent,显示则是反比例。

4.布局之间是相互套用去使用的。

第二种:RelativeLayout(相对布局)

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

容器的位置的方式排列

2.子类控件在RelativeLayout中常用到的属性(相对父容器的一个位置)

以下这些属性不用刻意去记,随着练习就记住了。

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" 该控件位于给定控件的左边

android:layout_alignBaseline = "@+id/button1" 该控件的内容与给定id控件的内容在一条线上

android:layout_alignBottom 该控件的底部边缘与给定ID控件的底部边缘对齐

android:layout_alignLeft 该控件的左边边缘与给定ID控件的左边边缘对齐

android:layout_alignRight 该控件的右边缘与给定ID控件的右边缘对齐

android:layout_alignTop 该控件的顶部边缘与给定ID控件的顶部对齐

第三种:FrameLayout(帧布局)

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

2.练习(显示的文字本应该放在string中的,此处为了方便才直接输入)

练习一

<TextView

android:layout_gravity="center"

android:background="#456789"

android:id="@+id/textView1"

android:layout_width="200dp"

android:layout_height="200dp"

android:text="第一个页面" />

<TextView

android:layout_gravity="center"

android:background="#785436"

android:id="@+id/textView2"

android:layout_width="150dp"

android:layout_height="150dp"

android:text="第二个页面" />

<TextView

android:layout_gravity="center"

android:background="#584693"

android:id="@+id/textView3"

android:layout_width="100dp"

android:layout_height="100dp"

android:text="第三个页面" />

<TextView

android:layout_gravity="center"

android:background="#731548"

android:id="@+id/textView4"

android:layout_width="50dp"

android:layout_height="50dp"

android:text="第四个页面" />

效果图



练习2

<ProgressBar

android:layout_gravity="center"

android:id="@+id/progressBar1"

style="?android:attr/progressBarStyleLarge"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />

<TextView

android:layout_gravity="center"

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="80%" />

效果图2



第四种:AbsoluteLayout(开发基本不用到)

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

2.由于手机屏幕尺寸差别比较大,使用绝对定位的适应性会比较差,在屏幕的适配上有缺陷(开发中少见到的原因)

3.子类控件的属性

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

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

第五种 TableLayout

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

2全局属性

android:collapseColumns = "1,2" //隐藏从0开始的索引列。列直接必须用逗号隔开:1,2,5

android:shrinkCoulumns = "1,2" //收缩从0开始的索引列,当可收缩的列太宽(内容过多)不会被挤出屏幕;列直接必须用逗号隔开:1,2,5;可以用"*"代替收缩所有列,注意一列能同时表示收缩和拉伸。

android:stretchColumns="1,2" //拉伸从0开始的索引列,以填满剩下的多余空白空间,列直接必须用逗号隔开:1,2,5;可以通过"*"代替收缩所有列,注意一列能同时带上收缩和拉伸。

3内部空间所用属性(这两个属性有时需要手动敲入)

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

android:layout_span = "2" 该控件占据2列
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: