小记Android之LinearLayout,AbsoluteLayout,FrameLayout
LinearLayout布局:
LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="fill_parent" android:textSize="15sp" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" android:layout_height="wrap_content" android:background="#56789a"></TextView> <TextView android:layout_width="fill_parent" android:textSize="15sp" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" android:layout_height="wrap_content" android:background="#456789"></TextView> <TextView android:layout_width="fill_parent" android:textSize="15sp" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" android:layout_height="wrap_content" android:background="#345678"></TextView> <TextView android:layout_width="fill_parent" android:textSize="15sp" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" android:layout_height="wrap_content" android:background="#234567"></TextView> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_weight="1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:layout_width="fill_parent" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" android:layout_height="fill_parent" android:background="#56789a"></TextView> <TextView android:layout_width="fill_parent" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" android:layout_height="fill_parent" android:background="#456789"></TextView> <TextView android:layout_width="fill_parent" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" android:layout_height="fill_parent" android:background="#345678"></TextView> <TextView android:layout_width="fill_parent" android:layout_weight="1" android:gravity="center_horizontal|center_vertical" android:layout_height="fill_parent" android:background="#234567"></TextView> </LinearLayout> <LinearLayout android:orientation="horizontal" android:gravity="right" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:text="确定" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> <Button android:text="取消" android:layout_width="wrap_content" android:layout_height="wrap_content"> </Button> </LinearLayout> </LinearLayout> <!-- gravity:设置LinearLayout内控件的对齐方式 --> <!-- orientation:设置LinearLayout的线性对齐方式 -->
AbsoluteLayout布局:
<?xml version="1.0" encoding="utf-8"?> <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_x="10px" android:layout_y="10px" android:background="#0000FF"></TextView> </AbsoluteLayout> <!-- 绝对定位 指定子控件的xy精确坐标的布局。缺乏灵活性。 -->
FrameLayout布局:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="290dp" android:layout_height="290dp" android:layout_gravity="center" android:background="#00FF11" /> <TextView android:layout_width="260dp" android:layout_height="260dp" android:layout_gravity="center" android:background="#00EE22" /> <TextView android:layout_width="230dp" android:layout_height="230dp" android:layout_gravity="center" android:background="#00DD33" /> <TextView android:layout_width="200dp" android:layout_height="200dp" android:layout_gravity="center" android:background="#00CC44" /> </FrameLayout> <!-- FrameLayout中的控件是层叠形式的。 --> <!-- layout_gravity: 指定控件在整个容器中的位置。 --> <!-- gravity:指定控件内部的内容在控件中的位置。 --> <!-- 如:1中有2,2中有3 在2中用layout_gravity标识2在1中的位置。 在2中用gravity标识2中的3在2中的位置。 -->