? ? ? ??Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦。组件按照布局的要求依次排列,就组成了用户所看见的界面。
?
?
??
一、LinearLayout:
? 1.运行效果:
??
?
? ? ?2.源码:
?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/lla"
android:orientation="vertical" >
<Button
android:text="button1"
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:text="button2"
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:text="button3"
android:id="@+id/button3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
?
?
?
二、FrameLayout:
? ? ? ?1.运行效果:
? ? ? ?
?
? ? 2.源码:
<?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"
android:background="@color/white">
<TextView
android:text="@string/big"
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="60px"
android:textColor="@color/green"
>
</TextView>
<TextView
android:text="@string/middle"
android:id="@+id/TextView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="40px"
android:textColor="@color/red"
>
</TextView>
<TextView
android:text="@string/small"
android:id="@+id/TextView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20px"
android:textColor="@color/blue"
>
</TextView>
</FrameLayout>
?
?
三、TableLayout:
? ? ? ?1.运行效果:
? ? ??
?
? ?2.源码:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TableRow
android:id="@+id/tablerow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/textView1"
android:text="Test"
/>
<TextView
android:id="@+id/textView2"
android:text="Test2"
android:layout_width="200dp "
android:layout_gravity="center_horizontal"
/>
</TableRow>
<TableRow
android:id="@+id/tablerow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/tableImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/a1"
/>
</TableRow>
</TableLayout>
?
四、AbsoluteLayout:
? ? ? ?1.运行效果:
? ? ??
? ?2.源码:
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="34dp"
android:layout_y="50dp"
android:text="用户名" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="86dp"
android:layout_y="34dp"
android:ems="10" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="93dp"
android:layout_y="84dp"
android:ems="10" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="38dp"
android:layout_y="101dp"
android:text="密码" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="92dp"
android:layout_y="185dp"
android:text="登录" />
</AbsoluteLayout>
?
?
五、Relative Layout:
? ? ? ?1.运行效果:
? ? ?
?
? ?2.源码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:id="@+id/button11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="居中"
/>
<Button
android:id="@+id/button12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/button11"
android:layout_toRightOf="@+id/button11"
android:text="右侧"
/>
<Button
android:id="@+id/button13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button11"
android:layout_alignLeft="@+id/button11"
android:text="上方"
/>
</RelativeLayout>
?
六、总结:
LinearLayout:它包含的子控件将以横向或竖向的方式排列,一般也比较常用.
Relative Layout:在相对布局中,子控件的位置是相对于兄弟控件或是父容器而决定的.
AbsoluteLayout:屏幕中所有控件通过设置控件的坐标来指定,控件容器不在负责管理其子控件的位置:
FrameLayout:
?1.在屏幕上开辟一块区域出来,在这个区域可以加很多子控件,但是所有的子控件都被对齐到屏幕的左上角,
?2.帧布局的大小由子控件中尺寸最大的那个控件来决定,如果控件同样大小,那么同一时刻只能看到最上面的子控件
TableLayout:
以行和列的形式管理控件,每行为一个TableRow对象,也可以是一个view对象,当是view对象时,该View对象将跨越该行的所有列,在tableRow中可以添加子控件,每添加一个子控件为一列.
原文:http://cb123456.iteye.com/blog/2214599