FrameLayout介绍
所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的组件放到最底层,最后添加到框架中的视图显示在最上面。上一层的会覆盖下一层的组件。默认组件都在靠左上角放置,但是我们可以通过 “layout_gravity”和 "layout_margin..."结合来设置控件的摆放位置
使用场景
FrameLayout看起来比较简单,但对于初学的人来说不是很好理解,显的比较神秘,能用好的话必需得多实践下。
使用场景:当应用的界面上有层叠的控件时,这时我们需要用到FrameLayout。
简单示例
代码实现:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/textview1" android:layout_width="300dp" android:layout_height="300dp" android:layout_gravity="center" android:background="#FF33ffff" /> <TextView android:id="@+id/textview2" android:layout_width="240dp" android:layout_height="240dp" android:layout_gravity="center" android:background="#FF33ccff" /> <TextView android:id="@+id/textview3" android:layout_width="180dp" android:layout_height="180dp" android:layout_gravity="center" android:background="#FF3399ff" /> <TextView android:id="@+id/textview4" android:layout_width="120dp" android:layout_height="120dp" android:layout_gravity="center" android:background="#FF3366ff" /> <TextView android:id="@+id/textview5" android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="center" android:background="#FF3300ff" /> </FrameLayout>
复杂示例
比如下面这个界面,可以看到整个界面是一个大的轮播图(ViewPager实现),可以左右滑动功换广告图片,在这个轮播图上面有“微信登录”、“注册”、“登录”等按扭。
代码实现:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/color_lightblue" android:orientation="vertical" > <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <android.support.v4.view.ViewPager android:id="@+id/vpContainer" android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_centerInParent="true" /> <LinearLayout android:id="@+id/ll_dot" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="350px" android:orientation="horizontal" > </LinearLayout> </FrameLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_gravity="bottom" android:orientation="vertical" android:padding="60px" > <LinearLayout android:id="@+id/ll_wechatlogin" android:layout_width="fill_parent" android:layout_height="138px" android:layout_centerInParent="true" android:background="@drawable/button_white_bg" android:drawableLeft="@drawable/wechatlogo_xh" android:gravity="center_horizontal" android:orientation="horizontal" android:paddingBottom="38px" android:paddingTop="38px" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/wechatlogo_xh" /> <TextView android:id="@+id/tv_wechatlogin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginLeft="10px" android:background="@drawable/button_white_bg" android:gravity="center" android:orientation="horizontal" android:text="微信登录" android:textColor="@color/color_black" android:textSize="40px" /> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="50px" android:orientation="horizontal" > <Button android:id="@+id/btn_register" android:layout_width="0dp" android:layout_height="138px" android:layout_weight="5" android:background="@drawable/button_transparent_bg" android:paddingBottom="38px" android:paddingTop="38px" android:text="注册" android:textSize="40px" /> <View android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" /> <Button android:id="@+id/btn_login" android:layout_width="0dp" android:layout_height="138px" android:layout_weight="5" android:background="@drawable/button_transparent_bg" android:paddingBottom="38px" android:paddingTop="38px" android:text="登录" android:textSize="40px" /> </LinearLayout> </LinearLayout> <TextView android:id="@+id/login_vistor_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="left|top" android:layout_marginLeft="30.0px" android:layout_marginTop="30.0px" android:text="@string/login_vistor_view" android:textSize="@dimen/font_size_medium_50" android:textColor="@color/white" /> </FrameLayout>
相关推荐
帧布局(FrameLayout)是Android布局中的基本类型之一,它的特点是简单直接。当在帧布局内添加多个组件时,所有组件都会默认位于左上角,并且按照它们的尺寸大小重叠。较大的组件会覆盖较小的组件,只有位于顶部的...
下面将详细介绍帧布局FrameLayout的常用属性。 1. **Android:foreground** 这个属性用于设置帧布局的前景图,即在所有子视图之上显示的图像。前景图可以是任何图形资源,如图片、形状等。通过这个属性,可以在...
总结来说,Android中的帧布局FrameLayout是一个基础且实用的布局工具,尤其适合处理简单层叠效果和单一位置需求的场景。了解并熟练掌握其特点和用法,对于提升Android应用的用户体验和界面设计质量至关重要。
帧布局(FrameLayout)是Android布局管理器的一种,它的设计思想简单直观,主要用于展示单个或少量的组件,尤其适用于需要元素叠加的情况。在FrameLayout中,所有的子视图(如TextView、ImageView等)默认都会放置在...
在Android应用开发中,布局是构建用户界面的关键...为了深入理解Android布局系统,开发者还应该掌握其他布局类型,如LinearLayout、RelativeLayout、GridLayout以及ConstraintLayout等,以便灵活应对各种UI设计需求。
在Android开发中,布局管理器是构建用户界面的关键部分,它们负责组织和定位视图(View)或视图组(ViewGroup)。本篇我们将深入探讨`FrameLayout`,这是一个非常基础但灵活的布局管理器,它允许你在屏幕上精确地...
在Android开发中,FrameLayout是一种基础的布局容器,它允许开发者在一个帧内堆叠多个视图,这些视图可以按照Z轴(前后)顺序重叠。在这个教学案例中,我们将探讨如何利用FrameLayout来实现特定的设计需求。 首先,...
`Framelayout`是Android布局管理器的一种,它的特点是按照添加到布局中的顺序决定各个View的显示位置。默认情况下,最后一个添加的View会覆盖之前的所有View,除非你对它们的位置进行了特别的设置。在这个场景下,...
`FrameLayout`是Android中的一个布局容器,它按照从上到下的顺序堆叠子视图。当多个视图重叠时,最后一个添加的视图会位于最顶层。在下拉刷新场景中,`FrameLayout`通常用来放置`ListView`或`RecyclerView`,以及...
FrameLayout是Android SDK中的一个布局容器,主要用于展示一个或多个视图(Views)在一个特定的框架内,通常这些视图会重叠放置。这个布局在许多简单场景中非常有用,例如,当您需要一个背景视图和一个浮于其上的...
本文将深入探讨Android布局的各种类型及其使用方法,旨在帮助开发者更好地理解和掌握Android应用的UI设计。 首先,我们来了解Android中的基本布局类型: 1. **线性布局(LinearLayout)**:这是最基础的布局,它...
【Android布局管理器】是Android应用开发中的核心概念,它决定了UI组件在屏幕上的排列方式。在Android中,布局管理器主要有五种类型:线性布局(LinearLayout)、表格布局(TableLayout)、相对布局(RelativeLayout...
首先,创建一个自定义布局通常需要继承`FrameLayout`或者`LinearLayout`等基础布局类。在这个例子中,我们继承`ViewGroup`,因为我们需要完全控制子视图的摆放。`CircleLayout`的核心在于重写`onLayout()`方法,此...
1. **FrameLayout布局**:FrameLayout是Android中最基础的布局之一,它的特点是只有一个子视图可以占据整个屏幕,并且后续的子视图会覆盖在前面的视图之上。在这个练习中,FrameLayout将作为主容器,用于显示图片。 ...
本篇文章将详细介绍Android三种基本布局:FrameLayout、LinearLayout和RelativeLayout。 1. **FrameLayout** FrameLayout是最基础的布局,它的特点是所有子视图(View)都会按照从上到下、从左到右的顺序重叠在...
Android布局文件是用来描述应用程序界面上组件(如按钮、文本视图、图像视图等)的结构和位置的XML文档。这些文件定义了控件的属性,如大小、位置、文本、样式等,并且可以包含多个嵌套的布局以实现复杂的屏幕设计。...
本教程将深入探讨Android布局的各个方面,帮助开发者掌握创建高效、可扩展且美观的用户界面的技巧。 首先,我们来了解Android布局的基础知识。Android提供了多种布局类型,每种都有其特定的用途: 1. **线性布局...
下面我们将详细探讨Android布局及其在实际应用中的使用。 Android支持多种布局管理器,每种都有其特定的用途: 1. **线性布局(LinearLayout)**:这是最基础的布局,可以将子视图水平或垂直排列。通过设置`...