Android 布局类控件
Android提供6种布局类的控件:LinearLayout、TableLayout、GridLayout、FrameLayout、RalativeLayout、AbsoluteLayout
网上搜到一篇文章,写的比较全面。
http://blog.csdn.net/cctcc/article/details/9943587
补充:
1、部分Layout包含gravity属性(对应的XML属性android:gravity),可以使用setGravity方法来设置Layout内部组件的对齐方式。可以同时设置横向和纵向的对齐方式,中间用“|”间隔,但是“|”前后不能有空格。
2、LinearLayout不会换行,如果orientation为horizontal,想要显示5个控件,但是屏幕上只能显示4个控件,则第5个控件不会显示在屏幕上,因为LinearLayout不会自动换行。
3、TableLayout
- 继承自LinearLayout,而且TableLayout的组成部分TableRow也是一个LinearLayout。
- 如果直接向TableLayout中添加组件,这个组件将自己占有一行。
- TalbeLayout的列宽度由最宽的那个单元格确定。
- 可以设置以下三种列行为方式,下面指定的列号从0开始:
-
- Shrinkable:该列所有单元格可以被收缩,对应TableLayout.setColumnShrinkable(int,boolean);对应TableLayout的XML属性,android:shrinkColumns
- Stretchable:该列所有单元格可以被拉伸,对应TableLayout.setColumnStretchable(int,boolean);对应TableLayou的XML属性,andriod:stretchColumns
- Collapsed:该列所有单元格将会被隐藏,对应TableLayout.setColumnCollpased(int,boolean);对应TableLayout的XML属性,android:collpaseColumns
-
4、RelativeLayout
可以通过setGravity设置内部各子组件的对齐方式
setIgnoreGravity(int)设置某个组件不需要遵守gravity设置的对齐方式。
5、Android通常支持如下的距离单位
px:像素,每个px对应屏幕上的一个点
dip或dp(device independent pixels,设备独立像素):一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dip=1px。但随着屏幕密度的抽象单位,dip和px的转换会发生改变。
sp(scaled pixels,比例像素):主要处理字体大小,可以根据用户选择的字体大小进行缩放。
in(英寸):标准长度单位。
mm(毫米):标准长度单位。
pt(磅):标准长度单位,1/72英寸。
em :这是一个弹性的长度单位,它会继承父级容器的单位大小。显示的时候,大小为父级容器的大小乘以em对应的值。比如父级容器15px,该控件大小为0.5em,则大小为7.5px。