Android布局深究系列文章目录
Android布局深究(一)——LinearLayout(线性布局)
Android布局深究(二)——RelativeLayout(相对布局)
Android布局深究(三)——TableLayout(表格布局)
Android布局深究(四)——FrameLayout(帧布局)
Android布局深究(五)——GridLayout(网格布局)
Android布局深究(六)——AbsoluteLayout(绝对布局)
前言
本文将研究安卓布局中的帧布局,虽然帧布局的应用场景比较少,但因其使用方法简单以及特殊的应用场景,所以仍然有一定的学习价值。下面将从帧布局的基本属性开始讨论,并通过一个小deom来加深印象。
一、FrameLayout(帧布局)的定义
帧布局默认情况下会将组件元素统一在屏幕的左上角进行渲染,新组件元素(后渲染的组件)总是在旧组件元素(先渲染的组件)之上进行覆盖式渲染
,且布局容器的大小由其布局容器中最大的组件元素大小所决定,当我们在帧布局中创建组件元素时,就会产生类似这样的叠加效果
:
二、常用属性
属性 | 作用 |
---|---|
foreground | 设置布局容器的前景图片(始终显示在所有组件最上方) |
foregroundGravity | 设置前景图片的显示位置 |
三、模拟音乐播放器的唱片
帧布局主要应用在具有层次要求的布局当中,可以轻松实现多个组件叠加的效果。下面我们实现音乐播放器中的唱片效果:
完整代码:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:foreground="@mipmap/girl"
android:foregroundGravity="right|bottom"
>
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="top|center"
android:layout_marginTop="120dp"
android:src="@mipmap/music_img"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top|center"
android:layout_marginTop="70dp"
android:width="300dp"
android:height="300dp"
android:background="@mipmap/singlecover"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/needle"
android:layout_gravity="top|center"
/>
</FrameLayout >
四、总结
帧布局相对于其他布局来说,难度不大,入门简单,但可以通过帧布局快速实现层次叠加的特殊效果,因此也值得我们深入学习。