android中布局管理器是以ViewGroup为基类派生的。分为线性布局(LinearLayout)、表格布局(TableLayout)、帧布局(FrameLayout)、相对布局(RelativeLayout)、网格布局(GridLayout)、绝对布局(AbsoluteLayout),为了让ui组件可以适应不同的手机和屏幕,android才提供了以上的布局方式。
简单介绍一下各种布局的特点和不同:
1, 线性布局(LinearLayout):android的线性布局不会换行,组件会一个挨着一个地排列到头,之后剩下的组件就不会被显示出来。
android:divider 设置布局中组件的分割线;android:gravity设置布局中组件的对齐方式(top、center_horizontal等等);android:orientation设置布局中组件的排列方式(horizontal,vertical)。LinearLayout子元素支持的相关方法:android:layout_gravity指定该子元素在LinearLayout中对齐方式;android:layout_weight指定该元素在LinearLayout中所占的权重。
2, 表格布局(TableLayout)继承LinearLayout,通过TableRow控制行数和列数。android:collapseColumns:隐藏指定的列,不同的列之间都用逗号隔开
android:shrinkColumns:收缩指定的列的宽度以适合屏幕,不会挤出屏幕
android:stretchColumns:尽量把指定的列所有单元格可以被拉伸保证填满单元格剩余空间
android:shrinkColumns:收缩指定的列的宽度以适合屏幕,不会挤出屏幕
android:stretchColumns:尽量把指定的列所有单元格可以被拉伸保证填满单元格剩余空间
android:layout_column:控件放在指定的列
android:layout_span:该控件所跨越的列数
android:layout_span:该控件所跨越的列数
3, 帧布局(FrameLayout)简单说就一它会一个叠加在一个上面。
android:foreground设置该帧布局的前景图像
android:foregroundGravity定义绘制前景图像的gravitity属性
4,
相对布局(RelativeLayout)最直接可以直接拖拽,放在自己想放的位置,但是要注意它和屏幕的适配问题。相对布局提供的方法:android:gravity设置该布局内各子布局组件的对齐方式;android:ignoregravity设置某个组件不受gravity属性影响。其他的属性可以靠自己拖拽自己摸索
6 绝对布局(AbsoluteLayout)简单说布局容器不管理组件的位置、大小全部让开发人员自己控制,这样在不同手机上屏幕大小,分辨率差异绝对布局不能很好的适应,可以说它已经过时了 layout_x: layout_y指定横纵坐标。
px像素
dip=dp设备独立像素
sp比例像素,根据用户字体大小首选项进行放缩
in英寸、
pt磅、
mm毫米都是长度单位