首页 > 代码库 > 第三章 界面UI的基石—UI布局(3)

第三章 界面UI的基石—UI布局(3)

3.2.4框架布局(FrameLayout)

FrameLayout是五大布局中最简单的一个布局,也称为层布局或者是帧布局。在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,层叠式排列。此布局无法控制子控件的大小和位置,但是子控件自身可以控件其大小和位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。此布局通常用于游戏或者处理一些画廊程序。

我们也以一个简单的例子来说明。

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    <TextView

        android:layout_width="200dp"

        android:layout_height="200dp"

        android:background="@android:color/white"

        android:gravity="bottom|center_horizontal"

        android:text="text"

        android:textColor="@android:color/black"/>

    <ImageView

        android:layout_width="100dp"

        android:layout_height="100dp"

        android:background="@drawable/icon"/>\

    <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="确定"/>

</FrameLayout>

 

效果图如图3-6所示。

技术分享

图3-6FrameLayout框架布局(一)

 

我们可以看到,这些控件一个个全叠加在左上角,并且一层覆盖一层。接着我们通过layout_gravity属性来改变他们的位置再来看一下。

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout

xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="match_parent"

    android:layout_height="match_parent">

    <TextView

        android:layout_width="200dp"

        android:layout_height="200dp"

        android:background="@android:color/white"

        android:layout_gravity="right"

        android:gravity="bottom|center_horizontal"

        android:text="text"

        android:textColor="@android:color/black"/>

    <ImageView

        android:layout_width="100dp"

        android:layout_height="100dp"

        android:layout_gravity="center_horizontal"

        android:background="@drawable/icon"/>

    <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center_horizontal"

        android:layout_marginTop="20dp"

        android:text="确定"/>

</FrameLayout>

 

效果如图3-7所示。

技术分享

图3-7FrameLayout框架布局(二)


第三章 界面UI的基石—UI布局(3)