Android UI
Android UI元素是由 view 和 viewgroup组成的。view是指能用户用户交互,显示在屏幕上的控件;viewgroup是承载view控件的容器,是view的父节点,在viewgroup中可以定义view的布局样式。
布局概述
Android提供了两种方式来设计布局,一种是通过XML文件来进行布局;另一种是通过代码在运行时动态的添加或修改应用布局。
布局参数
- 父节点会为每一个子节点定义布局参数
- 每一个子节点也必须定义和父节点向适应的布局参数,子节点同样也可以为其子节点定义不同的布局参数
布局位置
每一个布局都是在一个矩形里面定义的,位置是通过 left & top 坐标和width & height来描述的。
- getLeft() 获取当前组件的X坐标,也就是组件左边界的坐标;
- getTop() 获取当前组件的Y坐标,也就是组件上边界的坐标;
- getRight()
getBottom()
getRight() getBottom() 可能会理解有些偏差,下面用一个公式,可以知道他们代表的意义 。
- getRight() == getLeft() + getWidth()
- getBottom() == getTop() + getHeight()
大小(Size)
一个view组件实际上有两套width 和 height的值:
- measured width & measured height : 这两个值表示组件在父级组件中想要占用的大小,通过getMeasuredWidth() 和 getMeasuredHeight()可以得到
- width & height : 这两个值表示组件实际在屏幕上显示的大小(在draw 和 layout之后可以获得),通过getWidth() and getHeight()可以获得。
这两套值可能会不一样。
组件在计算大小的时候会把padding大小计算在内,但是margins只有viewgroup支持,view是没有这一属性的。