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框架布局(二)