4. 帧布局实现层叠效果

任务说明

本案例使用FrameLayout(帧布局)实现图片与文字的层叠显示效果。FrameLayout的特点是所有子视图默认对齐到左上角,后添加的子视图会覆盖在先添加的子视图之上。我们将通过一个简单的示例:在背景图片上叠加显示一段半透明背景的文字标签,直观展示层叠布局的核心用法。

界面布局设计

布局结构如下:FrameLayout作为根容器,第一个子视图为ImageView(显示背景图片),第二个子视图为TextView(显示叠加文字)。TextView通过layout_gravity属性控制其在帧布局中的对齐位置,并通过半透明背景色实现文字与图片的清晰层叠。

实现代码

创建activity_main.xml布局文件,完整代码如下:

```xml ```

在res/values/strings.xml中添加所需字符串资源:

```xml FrameLayoutDemo 示例背景图片 层叠文字示例 ```

将一张示例图片命名为sample_bg.png放入res/drawable/目录(可使用任意图片资源替代)。

关键实现说明

  • 层叠顺序:XML中先声明ImageView,后声明TextView,因此TextView绘制在ImageView之上。
  • 对齐控制:layout_gravity="bottom|center_horizontal"使文字层水平居中并贴近底部,避免完全重叠导致文字不可读。
  • 半透明背景:#AA000000表示黑色半透明背景(AA为透明度),确保文字在任意图片上均清晰可见。
  • 自适应尺寸:ImageView使用match_parent填满整个帧布局,TextView使用wrap_content仅包裹文字内容。

运行与验证

在Android Studio中创建新项目,将上述布局文件替换默认的activity_main.xml,并确保MainActivity使用setContentView(R.layout.activity_main)加载该布局。运行应用后,观察屏幕显示:

  • 背景图片完整铺满整个屏幕;
  • 文字“层叠文字示例”以白色字体、半透明黑色背景显示在图片底部居中位置;
  • 文字背景与图片之间有明显层次感,文字清晰可读。

若需调整层叠效果,可修改layout_gravity值(如top、center)改变文字位置,或修改background的透明度值(如#CC000000)改变背景深浅。

布局结构示意

FrameLayout (match_parent) ImageView @drawable/sample_bg match_parent × match_parent 层叠文字示例 TextView layout_gravity= bottom|center_horizontal

验证判定标准

完成上述步骤后,满足以下条件即判定案例实现成功:

  1. 应用正常启动,无崩溃或资源缺失错误;
  2. 屏幕显示完整背景图片,且图片未被拉伸变形(centerCrop效果);
  3. 文字层显示在图片上方,位置为底部水平居中,文字内容与strings.xml定义一致;
  4. 文字背景为半透明黑色,文字为白色,与图片内容形成清晰层叠关系。