Android常用布局之FrameLayout(帧布局)

这篇具有很好参考价值的文章主要介绍了Android常用布局之FrameLayout(帧布局)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FrameLayout(帧布局)

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

通常不使用FrameLayout显示多项内容,因为它的布局很难调节!        

不用layout_gravity属性的话,多项内容会重叠;使用layout_gravity的话,能设置不同的位置。


layout_gravity可以取值:

  • top   将对象放在其容器的顶部,不改变其大小.
  • bottom  将对象放在其容器的底部,不改变其大小.
  • left  将对象放在其容器的左侧,不改变其大小.
  • right  将对象放在其容器的右侧,不改变其大小.
  • center_vertical  将对象纵向居中,不改变其大小.  垂直对齐方式:垂直方向上居中对齐。
  • fill_vertical  必要的时候增加对象的纵向大小,以完全充满其容器. 垂直方向填充
  • center_horizontal  将对象横向居中,不改变其大小.水平对齐方式:水平方向上居中对齐
  • fill_horizontal  必要的时候增加对象的横向大小,以完全充满其容器. 水平方向填充
  • center  将对象横纵居中,不改变其大小.
  • fill  必要的时候增加对象的横纵向大小,以完全充满其容器.
  • clip_vertical  附加选项,用于按照容器的边来剪切对象的顶部和/或底部的内容. 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部.垂直方向裁剪
  • clip_horizontal  附加选项,用于按照容器的边来剪切对象的左侧和/或右侧的内容. 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧. 水平方向裁剪

这里有个点需要注意:

区分“android:gravity”和“android:layout_gravity”。

android:gravity :是对控件本身来说的,是用来设置“控件自身的内容”应该显示在“控件自身体积”的什么位置,默认值是左侧。
android:layout_gravity:是相对于控件的父元素来说的,设置该控件在它的父元素的什么位置。

还有2个特殊的属性:

android:foregroundGravity 设置前景图像显示的位置
android:foreground 设置帧布局容器的前景图像(始终在所有子控件之上)

实例:

在一个正常顺序下(先加文本再加图片)这个时候图片将覆盖文本的一部分。如:

Android常用布局之FrameLayout(帧布局)

实现代码:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".FrameLayoutActivity">
    <!--整体布局为帧布局-->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:text="帧布局"
        android:textSize="50dp"
        android:gravity="right"/>
    <TextView
        android:layout_width="500px"
        android:layout_height="100px"
        android:text="这是一个图片"
        android:textSize="80px"
        android:textStyle="bold"></TextView>
    <ImageView
        android:layout_width="400px"
        android:layout_height="400px"
        android:src="@mipmap/ic_launcher">
    </ImageView>

</FrameLayout>

将文本和图片的位置调换,文本将不会在被图片所覆盖。如:

Android常用布局之FrameLayout(帧布局)

在整个布局下,加入android:foreground属性,不管你的子控件有多少,这个属性所添加的图像将会覆盖所有。

Android常用布局之FrameLayout(帧布局)

 代码:(前景图像是自己设定的,这个图片是我自己找的)

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:foreground="@drawable/img_2"
    tools:context=".FrameLayoutActivity">
    <!--整体布局为帧布局-->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:text="帧布局"
        android:textSize="50dp"
        android:gravity="right"/>
    <TextView
        android:id="@+id/text"
        android:layout_width="500px"
        android:layout_height="100px"
        android:text="这是一个图片"
        android:textSize="80px"
        android:textStyle="bold"></TextView>
    <ImageView
        android:id="@+id/image"
        android:layout_width="400px"
        android:layout_height="400px"
        android:src="@mipmap/ic_launcher">
    </ImageView>

</FrameLayout>

这个布局由于位置调动太难了,它的使用频率比表格布局还要小。文章来源地址https://www.toymoban.com/news/detail-409832.html

到了这里,关于Android常用布局之FrameLayout(帧布局)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android常用布局之TableLayout(表格布局)

    TableLayout(即表格布局) 当TableLayout下面写控件、则控件占据一行的大小。(自适应一行,不留空白) 但是, 想要多个组件占据一行 ,则配合 TableRow 实现 TableLayout 继承 自LinearLayout, 因此它 完全支持 LinearLayout所支持的属性,此外,它还有其他的常用属性。 属性名称 功能描述 an

    2023年04月09日
    浏览(38)
  • Android基础学习笔记8:常用布局 - 线性布局

    能说出安卓界面元素层次 能说出安卓常用的布局 能说出线性布局常用的属性 能利用线性布局实现简单的界面设计 能利用线性布局嵌套实现比较复杂的界面 应用界面包含用户可查看并与之交互的所有内容。安卓提供丰富多样的预置 UI 组件,例如结构化布局对象和 UI 控件,您

    2024年02月05日
    浏览(50)
  • Android学习笔记 - 常用的布局

    Android中有六种的布局方式,分别是:LinearLayout(线性布局)、RelativeLayout(相对布局)、TableLayout(表格布局)、FrameLayout(帧布局)、AbsoluteLayout(绝对布局)、GridLayout(网格布局)。在开发中,我们用的最多的就是线性布局和相对布局。 线性布局是我们在开发中用的最多的一种布局方式。

    2024年02月04日
    浏览(43)
  • Android的 AlertDialog自定义布局与常用布局用法(弹窗)

    1.直接上效果图,看看是不是你们想要的效果图 2.主活动MainActivity2的代码如下

    2024年02月12日
    浏览(37)
  • Android基础学习常用UI布局

    XML 常用属性 布局特点:放主要提供控件水平或者垂直排列的模型,每个子组件都是以垂直或水平的方式来线性排布.(默认是垂直) 基本属性 布局特点:为某一个组件为参照物,来定位下一个组件的位置的布局方式。 常用属性: 如何确定列数与行数 直接往TableLayout中添加组件

    2024年02月16日
    浏览(41)
  • 【Android Studio】常用布局 --- 滚动视图ScrollView

    问题引入 :手机屏幕的显示空间有限,常常需要上下滑动或左右滑动才能拉出其余页面内容,可惜一般的布局节点 都不支持自行滚动,这时就要借助滚动视图了。与线性布局类似,滚动视图也分为垂直方向和水平方向 两类,其中垂直滚动视图名为ScrollView,水平滚动视图名为

    2023年04月11日
    浏览(42)
  • Android布局和控件:创建用户界面的XML布局文件和常用UI控件详解

    在Android应用开发中,创建用户界面是一个重要的任务。通过使用XML布局文件和常用的UI控件,开发人员可以设计和构建出吸引人且功能丰富的应用界面。本文将详细介绍如何使用XML布局文件来创建Android应用的用户界面,并深入探讨一些常用UI控件的属性和用法。 XML布局文件是

    2024年02月17日
    浏览(43)
  • Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )

    运行有问题或需要源码请点赞关注收藏后评论区留言 顾名思义,线性布局像是用一根线把它的内部视图串起来,故而内部视图之间的排列顺序是固定的,要么从左到右,要么从上到下排列。通过属性android:orientation区分两种方向 下面通过一个实例讲解 效果如下  activity_linea

    2023年04月20日
    浏览(48)
  • 【Harmony】在Harmony上面可以使用的Android常用的开源库

    Harmony开发中,由于不像Android开发经过这么多年的发展,各种类库都是比较完善的,这就导致在Harmony开发中很多Android类库是不能使用的,但是也有一些是可以使用的,下面是我在Harmony开发中实际开发中可以使用的部分类库。 Okhttp + Retrofit OkHttp是一个开源的HTTP客户端库,而

    2024年02月10日
    浏览(39)
  • Android 布局菜鸟 android中的布局类型和特点?

           一、LinearLayout(线性布局) 1、 特点:         主要以水平或垂直方式来排列界面中的控件。并将控件排列到一条直线上。在线性布局中,如果水平排列,垂直方向上只能放一个控件,如果垂直排列,水平方向上也只能放一个控件。 2、适⽤场景:         And

    2024年01月17日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包