介绍
在帧布局管理器中,每加入一个组件都将创建一个空白的区域,通常称为一帧,默认情况下,这些帧都会被放置在屏幕的左上角,即帧布局是从屏幕的左上角(0,0)坐标点开始布局。多个组件层叠排序,后面的组件覆盖前面的组件,如图 3.20 所示。
XML属性
XML属性 | 描述 |
android:foreground | 设置该帧布局管理器的前景图像 |
android:foregroundGravity | 定义绘制前景图像的 gravity 属性,即前景图像显示的位置 |
例子
位置测试
FrameLayout:所有控件默认摆放在布局的左上角
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="24sp"
android:textColor="#000000"
android:text="Hello World!" />
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher" />
</FrameLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:textSize="24sp"
android:textColor="#000000"
android:text="Hello World!" />
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:src="@mipmap/ic_launcher" />
</FrameLayout>
显示层叠的正方形
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:foreground="@drawable/app"
android:foregroundGravity="bottom|right"
>
<!--添加居中显示的蓝色背景的TextView,将显示在最下层-->
<TextView
android:id="@+id/textView1"
android:layout_width="280dp"
android:layout_height="280dp"
android:layout_gravity="center"
android:background="#FF0000FF"
android:textColor="#FFFFFF"
android:text="蓝色背景的TextView" />
<!--添加居中显示的天蓝色背景的TextView组件,将显示在中间层-->
<TextView
android:id="@+id/textView2"
android:layout_width="230dp"
android:layout_height="230dp"
android:layout_gravity="center"
android:background="#FF0077FF"
android:textColor="#FFFFFF"
android:text="天蓝色背景的TextView" />
<!--添加居中显示的水蓝色背景的TextView组件,将显示在最上层-->
<TextView
android:id="@+id/textView3"
android:layout_width="180dp"
android:layout_height="180dp"
android:layout_gravity="center"
android:background="#FF00B4FF"
android:textColor="#FFFFFF"
android:text="水蓝色背景的TextView" />
</FrameLayout>