安卓学习之路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列
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列
相关文章推荐
- oracle 的wm_concat函数使用
- POJ 1329 三角外接圆
- 做AD转换方案时,一定需要注意的几点问题
- 设计一个可扩展的用户登录系统
- webbrower清楚缓存
- JS之单例模块模式
- 首页图片轮播
- 学习EZXML(XML解析器)源码过程中总结的知识(1)
- iOS CoreData数据迁移
- 词语接龙算法
- awk命令学习
- [从头学数学] 第02节 欢迎新同学
- ajax调用mvc控制器
- 分支限界_01背包问题_Java实现
- 打开/查找xcode6的沙盒地目录
- 角色 RESOURCE、CONNECT、DBA具有的权限
- Warning: readdir(): supplied argument is not a valid Directory resource in /yjdata/www/www/admin/tem
- Android植物大战僵尸小游戏
- Android基础之用Eclipse搭建Android开发环境和创建第一个Android项目(Windows平台)
- javascript基于prototype实现类似OOP继承的方法