
4.5 帧布局(FrameLayout)
FrameLayout可以说是六大布局中最为简单的一个布局,这个布局直接在屏幕上开辟出一块空白的区域,当我们往其中添加控件的时候,会默认把它们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多。帧布局的大小由控件中最大的子控件决定,如果控件的大小相同,那么同一时刻就只能看到最上面的那个组件。后续添加的控件会覆盖前一个。虽然默认会将控件放置在左上角,但是我们也可以通过layout_gravity属性指定到其他的位置。
4.5.1 FrameLayout介绍
帧布局通常默认是从屏幕的左上角(0,0)点的坐标开始布局,可以通过gravity属性来设置帧布局的对齐方式。首先,创建一个安卓项目,在安卓项目下有个res资源文件夹中layout下的布局文件,打开该布局文件,即layout_main.xml,将默认的RelativeLayout相对布局改成FrameLayout帧布局,用来标记使用的是帧布局管理器。
FrameLayout帧布局的属性如下。
1)android:foreground属性:用于设置该帧布局管理器的前景图像。
2)android:foregroundGravity属性:用来定义绘制前景图像的gravity属性,即前景图像显示的位置,可以把前景图像设置在左上角或右下角等角的地方,右下角应设置为bottom|right,左上角应设置为top|left。
4.5.2 FrameLayout实例
FrameLayout帧布局的主要布局文件代码如下:


在安卓项目下单击鼠标右键,选择Run As下拉菜单下的Android Application,等待一段时间,在模拟器下可显示结果。如图4-9所示。

图4-9 实例结果
【程序说明】
● 布局中,三个TextView设置不同大小与背景色,依次覆盖。
● 右下角的是前景图像,通过android:foreground="@drawable/logo"设置前景图像的图片,android:foregroundGravity="right|bottom"设置前景图像的位置在右下角。