Android UI之FrameLayout(帧布局)

Android UI之FrameLayout(帧布局)

说明:帧布局会为每个包含其中的组件开辟一个空白区域(称为帧),这些帧是一层层叠加在一起的,有点类似于一层层覆盖贴上去的海报,后面的组件会把前面的组件覆盖住。

FrameLayout有两个比较特殊的常用属性需要注意:

1 android:foreground

对应方法:setForeground(Drawable)

说明:设置帧布局的前景图像,一般为布局添加pressed状态会用到这个属性来指定一个Drawable类型对象。

举个栗子:

<FrameLayout
    android:foreground="@drawable/muogu"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:width="320dp"
        android:height="320dp"
        android:layout_gravity="center"
        android:background="#3399AA" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:width="280dp"
        android:height="280dp"
        android:layout_gravity="center"
        android:background="#AA77AA" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:width="240dp"
        android:height="240dp"
        android:layout_gravity="center"
        android:background="#662288" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:width="200dp"
        android:height="200dp"
        android:layout_gravity="center"
        android:background="#895511" />
    <ImageView
        android:layout_width="160dp"
        android:layout_height="160dp"
        android:layout_gravity="center"
        android:scaleType="fitXY"
        android:src="@drawable/nailiu16" />
</FrameLayout>

可以看到设置了foreground为小蘑菇的图片之后,图片直接拉伸占据满了整个FrameLayout,并将FrameLayout中所有的组件都遮盖住了。这就是相对与背景色的前景色的效果。

2 foregroundGravity

对应方法:setForegroundGravity(int)

说明:看名字就知道,肯定是跟前景色摆放有关。没错,这个属性的功能就是定义前景图像的gravity属性,所以这个属性必须配合foreground使用。而其中的可选项更gravity是一样的,可以在我之前的《 Android UI之LinearLayout(线性布局)》中找到属性表。

举个栗子:

<FrameLayout
    android:foreground="@drawable/muogu"
    android:layout_width="fill_parent"
    android:foregroundGravity="bottom|right"
    android:layout_height="fill_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:width="320dp"
        android:height="320dp"
        android:layout_gravity="center"
        android:background="#3399AA" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:width="280dp"
        android:height="280dp"
        android:layout_gravity="center"
        android:background="#AA77AA" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:width="240dp"
        android:height="240dp"
        android:layout_gravity="center"
        android:background="#662288" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:width="200dp"
        android:height="200dp"
        android:layout_gravity="center"
        android:background="#895511" />
    <ImageView
        android:layout_width="160dp"
        android:layout_height="160dp"
        android:layout_gravity="center"
        android:scaleType="fitXY"
        android:src="@drawable/nailiu16" />
</FrameLayout>

这里的代码更上边的唯一区别就是在FrameLayout中添加了下面这行代码。

android:foregroundGravity="bottom|right"

可以看到前景图像还原到了原有大小,而且按照设置放到了右下角,这样,FrameLayout中的子组件就显示出来了。

附:引用声明

《疯狂Android讲义(第二版)》 李刚 《2.2.3 帧布局》 电子工业出版社

时间: 2024-08-28 10:12:09

Android UI之FrameLayout(帧布局)的相关文章

Android中的FrameLayout帧布局

帧布局由FrameLayout所代表,FrameLayout直接继承了ViewGoup组件. 帧布局容器为每个加入其中的组件创建一个空白的区域(称为一个帧),每个子组件占据一帧,这些帧都会根据gravity属性执行自动对齐. 代码: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/an

Android基础入门教程——2.2.4 FrameLayout(帧布局)

Android基础入门教程--2.2.4 FrameLayout(帧布局) 标签(空格分隔): Android基础入门教程 本节引言: FrameLayout(帧布局)可以说是六大布局中最为简单的一个布局,这个布局直接在屏幕上开辟出 一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式 却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果控件 的大小一样大的话,那么同一时刻就只能看到最上面的那个组件!后续添加的控件会覆盖

Android零基础入门第30节:两分钟掌握FrameLayout帧布局

原文:Android零基础入门第30节:两分钟掌握FrameLayout帧布局 前面学习了线性布局.相对布局.表格布局,那么本期来学习第四种布局--FrameLayout帧布局. 一.认识FrameLayout 帧布局是Android布局中最简单的一种,使用FrameLayout标签. 帧布局为每个加入其中的控件创建一个空白区域(称为一帧,每个控件占据一 帧).釆用帧布局方式设计界面时,只能在屏幕左上角显示一个控件,如果添加多个控件,这些控件会按照顺序在屏幕的左上角重叠显示. 下表显示了 Fra

从零开始学android&lt;FrameLayout帧布局.十四.&gt;

FrameLayout布局(帧布局)就是在屏幕上开辟一个区域以填充所有的组件,但是使用FrameLayout布局会将所有的组件都放在屏幕的左上角,而且所有的组件可以层叠进行显示. <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_

Android精通:TableLayout布局,GridLayout网格布局,FrameLayout帧布局,AbsoluteLayout绝对布局,RelativeLayout相对布局

在Android中提供了几个常用布局: LinearLayout线性布局 RelativeLayout相对布局 FrameLayout帧布局 AbsoluteLayout绝对布局 TableLayout表格布局 GridLayout网格布局 TableLayout表格布局 TableLayout的介绍 TableLayout是将子类向分别排列成行和列的布局视图容器,TableLayout是由许多TableRow对象组成的,表格布局以行列的形式管理子控件,每一个单元是一个TableRow或者Vie

2.2.4 FrameLayout(帧布局)

本节引言 FrameLayout(帧布局)可以说是六大布局中最为简单的一个布局,这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件!后续添加的控件会覆盖前一个!虽然默认会将控件放置在左上角,但是我们也可以通过layout_gravity属性,指定到其他的位置!本节除了给大家演示一个最

New UI-布局之FrameLayout(帧布局)详解

New UI-布局之FrameLayout(帧布局)详解  --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! 小猪Android开发交流群已建立,欢迎大家加入,无论是新手,菜鸟,大神都可以,小猪一个人的 力量毕竟是有限的,写出来的东西肯定会有很多纰漏不足,欢迎大家指出,集思广益,让小猪的博文 更加的详尽,帮到更多的人,O(∩_∩)O谢谢! 小猪Android开发交流群:小猪Android开发交流群群号:421858269 新Android UI实例大全目录:http://bl

FrameLayout(帧布局)

FrameLayout(帧布局)可以说是六大布局中最为简单的一个布局,这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件!后续添加的控件会覆盖前一个!虽然默认会将控件放置在左上角,但是我们也可以通过layout_gravity属性,指定到其他的位置!本节除了给大家演示一个最简单的例子

FrameLayout帧布局

一.FrameLayout(帧布局)重点: FrameLayout(帧布局)可以说是五大布局中最为简单的一个布局,这个布局会默认把控件放在屏幕上的左上角的区域,后续添加的控件会覆盖前一个,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个控件 二.FrameLayout(帧布局)常用属性: android:foreground:设置改帧布局容器的前景图像 android:foregroundGravity:设置前景图像显示的位置 三.例子: 1.首先先创建一个FrameLayout的X