Android布局

Android布局是指包裹空间的容器,使添加的控件以特定的形态显示的的一种“规范”。

在Android中具有五大布局:LinearLayout(线性布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、AbsoluteLayout(绝对布局)、FrameLayout(帧布局)。

一、LinearLayout(线性布局)

线性布局提供了垂直和水平两种方式,可通过orientation进行控制,如果开发者不进行设置,系统默认是水平状态。

1、线性布局之水平布局

布局代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button1" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button3" />

</LinearLayout>

效果图:

Android布局_第1张图片

2、线性布局之垂直布局

布局代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button1" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button3" />

</LinearLayout>

效果图:

Android布局_第2张图片

二、RelativeLayout(相对布局)

相对布局提供了前、后、左、右、中五大方位,利用相对位置来确定控件的位置。

常用代码:

android:layout_alignBaseline --------------------本元素的文本与父元素文本对齐

android:layout_below ----------------------------在某元素的下方
android:layout_above ---------------------------在某元素的的上方
android:layout_toLeftOf -------------------------在某元素的左边
android:layout_toRightOf -----------------------在某元素的右边

android:layout_toStartOf -----------------------本元素从某个元素开始

android:layout_toEndOf-------------------------本元素在某个元素结束

android:layout_alignTop ------------------------本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft ------ ------------------本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom - ------------------本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight ----- -----------------本元素的右边缘和某元素的的右边缘对齐

android:layout_alignStart ------ -----------------本元素与开始的父元素对齐

android:layout_alignEnd  ------- ----------------本元素与结束的父元素对齐

示例代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/button1"
        android:text="button2" />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/button1"
        android:text="button3" />

    <Button
        android:id="@+id/button4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="button4" />

    <Button
        android:id="@+id/button5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:text="button5" />

</RelativeLayout>

效果图:

Android布局_第3张图片

三、TableLayout(表格布局)

TableLayout布局和LinearLayout布局的vertical属性基本相同。

示例代码:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button1" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button3" />

</TableLayout>
效果图:
Android布局_第4张图片

四、AbsoluteLayout(绝对布局)

绝对布局将控件的位置固定,通过设置控件的XY坐标来设置控件的位置。由于控件的XY坐标均以确定,所以具有很大的局限性,现已很少使用。

示例代码:

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button1" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="100dp"
        android:layout_y="100dp"
        android:text="button2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="200dp"
        android:layout_y="200dp"
        android:text="button3" />

</AbsoluteLayout>

效果图:

Android布局_第5张图片

五、FrameLayout(帧布局)

FrameLayout帧布局是将控件放于布局中,提供层次。

示例代码:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button1" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button3" />

</FrameLayout>

效果图:

Android布局_第6张图片

你可能感兴趣的:(Android布局)