Android之UI布局

一、概述

UI布局需要安卓程序员完成,目前在用的有4个布局(还有一个绝对布局已被放弃使用了),按使用频率由大到小排列如下:

1. 线性布局

<LinearLayout></LinearLayout>
默认是vertical(垂直的),如果是水平的,当组件过多,不会自动换行,太多组件会显示不出来全部的

2. 相对布局

<RelativeLayout></RelativeLayout>

3. 帧布局

<FrameLayout></FrameLayout>
帧布局每次添加的控件都显示在最上面,最后显示在界面上的是最后添加的一个控件。帧布局应用电影,如看视频时,层叠的图标(暂停)等图标。

4. 表格布局

<TableLayout><TableRow></TableRow></TableLayout>
基本不用,可以用表格实现的布局,都能用线性布局和相对布局来完成。

  • a) 没有用TableRow,每一个组件占用一行
  • b) 用了TableRow,每一个TableRow占用一行,其中的组件占用一列

布局之间是可以相互嵌套使用的,用不同的组合,可以排出丰富的界面。

二、UI布局的常用属性

1.LinearLayout 线性布局

  • orientation 属性是指定线性布局的排列方向:
    horizontal 水平
    vertical 垂直
  • gravity属性是指定当前控件内容显示位置:
    left 左边
    right 右边
    top 上边
    bottom 底边
  • layout_gravity属性是指定当前控件在父元素的位置:
    left 左边
    right 右边
    top 上边
    bottom 底边
  • layout_weightSum(权重)属性是把线性布局中剩余空间分成N份.
  • layout_weight (权重)属性是指定当前控件在父元素(线性布局)中占N份.
    visibility属性是控制布局是否显示:
    visible 显示
    invisible 不显示但占空间
    gone 隐藏

2.RelativeLayout 相对布局

  • 相对于指定控件的方向
    android:layout_toRightOf 在指定控件的右边
    android:layout_toLeftOf 在指定控件的左边
    android:layout_above 在指定控件的上边
    android:layout_below 在指定控件的下边
  • 相对于指定控件的对齐
    android:layout_alignBaseline 跟指定控件水平对齐
    android:layout_alignLeft 跟指定控件左对齐
    android:layout_alignRight 跟指定控件右对齐
    android:layout_alignTop 跟指定控件顶部对齐
    android:layout_alignBottom 跟指定控件底部对齐
  • 相对于父布局的对齐(true或false)
    android:layout_alignParentLeft 是否跟父布局左对齐
    android:layout_alignParentTop 是否跟父布局顶部对齐
    android:layout_alignParentRight 是否跟父布局右对齐
    android:layout_alignParentBottom 是否跟父布局底部对齐
    android:layout_centerVertical 在父布局中垂直居中
    android:layout_centerHorizontal 在父布局中水平居中
    android:layout_centerInParent 在父布局中居中

3.TableLayout 表格布局

  • 列的伸缩
    android:shrinkColumns 收缩列
    android:stretchColumns 拉伸列
    android:collapseColumns 隐藏列
  • 合并列
    android:layout_column 指定列(作用在列的身上)
    android:layout_span 合并列(作用在列的身上)

三、像素问题

  • 推荐使用的单位
    dp/dip用像素除以屏幕的宽高后,根据密度得出的一个数,对于不同分辨率的兼容性要好
    sp:是用像素和屏幕处理过的,用于字体大小属性。
  • 不推荐使用的单位
    px:纯粹的分辨率大小,在不同分辨率的屏幕上的显示会有问题的。
    pt:是磅数的意思 ,1磅等于1/72英寸
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值