Android布局分为:线性布局、相对布局、表格布局、帧布局、网格布局五种
1)FrameLayout(帧布局)
帧布局是最简单的布局对象,它被定制为用户屏幕上的一个空白备用区域,之后用户可以在其中填充一个单一对象,例如一张图片等。所有的子元素将会固定在屏幕左上角;我们不能为FrameLayout中的一个子元素指定一个位置。而且新增的子元素将会直接覆盖填充旧的子元素,类似于一个栈结构,当然也不一定是全部挡住,这样看透明度以及大小来决定。
<FrameLayout xmlns:android= "http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:foreground="#ff0000" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/loginName" android:textSize="@dimen/dp50"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/loginName" android:textSize="@dimen/dp100"/> </FrameLayout>
记住一些特性:
1)所有的组件都会放置于这块区域的左上角;
2)帧布局的大小由子控件中最大的子控件决定,
3)如果都组件都一样大的话,同一时刻就只能能看到最上面的那个组件了!原因是覆盖
4)foreground="#ff0000" 前景色,指定的颜色或图片永远覆盖其他的
5)foregroundGravity="fill_vertical" 前景色的位置,这个属性具体我没弄懂
2)GridLayout(网格布局)
网格布局是Android4.0之后新增的一中布局方式,他与TableLayout以及LinearLayout在操作上有点神似,当然,他自然有他的过人之处,主要就是在LinearLayout基础上新增一些属性,更易于使用。使用当中,注意组件如果没有标明跨行跨列那么组件按顺序默认只占一个单元格。
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/GridLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:rowCount="3" android:columnCount="2" android:orientation="horizontal"> <Button android:id="@+id/btn" android:layout_columnSpan="2" //跨2列 android:layout_gravity="fill" //按钮填充两列的空白,原因是不需要设置layout_width layout_height android:text="0"/> ---------------- <GridLayout>
记住一些特性:
1)android:orientation:组件排列方式
2)android:layout_gravity:组件对齐方式
3)android:rowCount:设置行数量
4)android:columnCount:设置列数量
对于容器内的组件也新增了一些属性:
1)android:layout_rowSpan:占用行数
2)android:layout_columnSpan:占用列数
3)android:layout_gravity = "fill" 组件填满所横越的整行或者整列,这个属性对那些有跨行或跨列的组件很有必要。
关于网格布局,其实我也是很头痛的,因为一开始学习没有相关经验,总是无法编译通过,后面看了一下这篇博客,所以就学习了起来。特别是在GridPanel如何在Eclipse中运行起来,这篇博客就显的格外重要了。
下面这些内容就是转载自博客:
http://blog.csdn.net/jianghuiquan/article/details/8299973
当读者将布局设置为GridLayout时,会出现莫名其妙的报错,
如果代码语法逻辑没有错的话,就可能是配置文件AndroidManifest.xml的问题了
因为GridLayout是android 4.0 后才推出的,API Level 为 14
只需要将配置文件中的MinSDK改成14或者以上版本即可,保存,问题就解决了!
请参考 :
http://blog.csdn.net/jianghuiquan/article/details/8299973
原文:http://my.oschina.net/heweipo/blog/363645