Android中的5种布局的分析

线性布局 :LinearLayout

在线性布局中,组件是有方向的,就是说我们放入线性布局中的组件只能按照  水平 或者 垂直 方向来显示,
并且线性布局是不会换行的,就是说当我们的控件排列到了界面边缘后,后面的组件将不会显示出来。

线性布局中的属性:

  1. android:orientation 属性,控制线性布局中控件的方向,有水平(horizontal)和垂直(vertical)两种可选项,默认的是垂直方向(虽然说默认是垂直方向,但是在最新版AS中,不设置方向依然会报错)。

  2. android:gravity 属性,设置布局内组件的对齐方式,可选值有:top、right、bottom、left、center、center_vertical、center_horizontal、fill、fill_vertical、fill_horizontal、clip_vertical、clip_horizontal,这些属性可以同时指定多个,用 | 分隔。 (线性布局方向为horizontal时候,top,bottom,center_vertical等属性不会起作用,同理方向为vertical时候,left,right,center_horizontal等属性不会生效,但是center不管方向如何都起作用。)

  3. android:layout_width 属性,设置组件的基本宽度,可选为fill_parent、match_parent、wrap_content。fill_parent(已废弃)和match_parent都表示宽度和父容器宽度相同,wrap_content表示宽度刚好包裹住它里面的内容。

  4. android:layout_height 属性,设置组件的基本高度,可选为fill_parent、match_parent、wrap_content。fill_parent(已废弃)和match_parent都表示高度和父容器宽度相同,wrap_content表示高度刚好包裹住它里面的内容。

  5. android:id 属性,用于指定此组件的id,指定id后会在R.java文件中自动生成一个对应的属性。在java代码中通过findViewById()获取此控件。

  6. android:background 属性,为组件设置背景颜色,可是图片,也可是色值。
    如果是图片,则需要将准备好的图片放到drawable或者mipmap 文件夹下,通android:background=“@drawable/xxx”或者 android:background =“@mipmap/xxx”来引用。
    如果是色值,则通过 android:background =“#XXFFFFFF”颜色值是用16进制来表示的,XX代表透明度,后面的6位表示具体的颜色。

表格布局 :TableLayout

表格布局与常用的表格类似,以行、列来管理其中的UI组件,用<TableLayout>标记,其中用<TableRow>来标记每一行。TableLayout继承LinealLayout,因此完全支持LinearLayout中的所有属性。

TableLayout 区别与LinearLayout的属性

1. android:collapseColumns 设置需要被隐藏的列的序号,从0开始。多个序号用“,”分隔。
2. android:shrinkColumns 设置允许被收缩的列序号,从0开始。多个序号用“,”分隔。
3. android:stretchColumns 设置允许被拉伸的列序号,从0开始。多个序号用“,”分隔。

帧布局 :FrameLayout

每隔组件都是从屏幕左上角(0,0)开始的,多个组件层叠排列,后面的覆盖前面的组件。

FrameLayout的特殊属性

  1. android:foreground 属性,设置帧布局的前景图像,可以是图片也可以是颜色。前景图像在最上层,不会被它里面的其他控件所覆盖。
  2. android:foregroundGravity 属性,设置前景图像的位置,同线性布局的gravity属性。

    需要注意的是 如果设置了foregroundGravity属性,前景图设的是色值的话,是显示不出来,只有设置的是图片能显示出来;
    如果不设置foregroundGravity属性,那么不管android:foreground 设置的颜色还是图片都是充满整个FrameLayout的。

相对布局 :RelativeLayout

相对布局,顾名思义就是里面的组件是按照各个组件的相对位置来确定的。如A在B的上、下、左、右等方向显示。相对布局中的控件如果不设置好,是会出现控件的重叠的。

  1. android:gravity 属性,用来设置里面的各组件的对其方式
  2. android:ignoreGravity 属性,用来指定那个组件不受gravity属性的影响。
  3. android:layout_above 属性,属性值为其他UI组件的id,指定该组件位于哪个组件方。
  4. android:layout_below 属性,属性值为其他UI组件的id,指定该组件位于哪个组件方。
  5. android:layout_toLeftOf 属性,属性值为其他UI组件的id,指定该组件位于哪个组件侧。
  6. android:layout_toRightOf 属性,属性值为其他UI组件的id,指定该组件位于哪个组件侧。
  7. android:layout_aliginBottom 属性,属性值为其他UI组件的id,指定该组件与哪个组件边界对齐。
  8. android:layout_aliginLeft 属性,属性值为其他UI组件的id,指定该组件与哪个组件边界对齐。
  9. android:layout_aliginRight 属性,属性值为其他UI组件的id,指定该组件与哪个组件边界对齐。
  10. android:layout_aliginTop 属性,属性值为其他UI组件的id,指定该组件与哪个组件边界对齐。
  11. android:layout_aliginParentBottom 值为boolean类型,指定该组件是否与父布局底端对齐
  12. android:layout_aliginParentTop 值为boolean类型,指定该组件是否与父布局顶端对齐
  13. android:layout_aliginParentLeft 值为boolean类型,指定该组件是否与父布局左边对齐
  14. android:layout_aliginParentRight 值为boolean类型,指定该组件是否与父布局右边对齐
  15. android:layout_centerHorizontal 值为boolean类型,指定该组件是否位于父布局水平居中位置。
  16. android:layout_cneterVertical 值为boolean ,指定该组件是否位于父布局垂直居中位置。
  17. android:layout_centerInParent 值为boolean,指定该组件是否位于父布局垂直和水平同时居中位置。

绝对布局 :AbsoluteLayout

在android2.0中以标记为以过期,所以不在提及,因为绝对布局是根据像素点去排列控件的,而现在的android手机的分辨率多如牛毛,所以被废弃了也属于正常。

总结:对于现在的开发而言,用的最多的就是 线性布局(LinearLayout)和 相对布局 (RelativeLayout)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值