UI
- user interface,UI由view和viewGroup组成
- view是所有视图空间(包括viewGroup)的基类
- view占据一块矩形区域,并在上面进行内容绘制
- viewGroup包含view和viewGroup,用于控制子布局
总结:view负责显示,viewGroup负责控制布局
LinearLayout
关于layout_weight
- 权重的值
- 等于0(默认值):占据指定的空间
- 大于0:将父控件的可用空间进行分割,值越大权重越大占据比例越大
- 使用场景
- 将布局平均分配
- 垂直或者竖直方向上占据中间部分的所有空间
需要注意的是,在使用权重时,需要将宽度或者高度设置为0dp。
在将宽度或者高度设置为0dp或者wrap_content时,
线性布局的子视图宽度或者高度计算公式为: 子视图自身的宽度(高度) + 权重/总权重 * 父视图的宽度(高度)
但是如果都设置为match_parent时,权重越大,所占比例反而越小。
线性布局独有的属性:
属性名称 | 描述 |
---|---|
android:orientation | 布局方向 |
android:layout_weight | 权重 |
RelativeLayout
相对布局独有的属性:
属性名称 | 描述 |
---|---|
android:layout_centerHorizontal | 水平居中 |
android:layout_centerVertical | 垂直居中 |
android:layout_centerInparent | 相对于父控件居中 |
android:layout_alignParentBottom | 位于父控件的下边 |
android:layout_alignParentLeft | 位于父控件的左边 |
android:layout_alignParentRight | 位于父控件的右边 |
android:layout_alignParentTop | 位于父控件的上边 |
android:layout_below | 在某控件的下方 |
android:layout_above | 在某控件的的上方 |
android:layout_toLeftOf | 在某控件的左边 |
android:layout_toRightOf | 在某控件的右边 |
android:layout_alignTop | 与指定控件的上边对齐 |
android:layout_alignLeft | 与指定控件的的左边对齐 |
android:layout_alignBottom | 与指定控件的的下边对齐 |
android:layout_alignRight | 与指定控件的的右边对齐 |
FrameLayout
帧布局与相对布局的区别在于,帧布局内的元素是处于不同层次之间的,而相对布局内的元素是处于同一层的。
FrameLayout无法使用android:layout_centerVertical这样的属性,因为这些属性是RelativeLayout所独有的。FrameLayout需要用gravity或者layout_gravity调整位置。
ImageView
- 背景图片
android:background="xxx";
public void setBackgroundResource(int resId) - 前景图片
android:src="xxx";
public void setImageResource(int resId)