Android中的布局方式(一)
【1】FrameLayout帧布局
FrameLayout是最简单的布局方式。它基本上就是用单个物件,例如一幅图片,来填充你屏幕上的一片空白区域。FrameLayout上所有的子元素都重叠在屏幕的左上角;你不能为子元素指定一个不同的位置。因此,子view就会简单地在之前的子view上重画,部分或者全部覆盖(除非新的物件是透明的)。
示例截图:
XML布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- dip 表示与密度无关的像素,各个TextView标签沉底显示 -->
<TextView android:id="@+id/tv1"
android:layout_width="120dip"
android:layout_height="180dip"
android:gravity="bottom"
android:textColor="#FFFFFF"
android:background="#CC0000"
android:text="第 1 个TextView"/>
<TextView android:id="@+id/tv2"
android:layout_width="150dip"
android:layout_height="150dip"
android:gravity="bottom"
android:textColor="#FFFFFF"
android:background="#00CC00"
android:text="第 2 个TextView"/>
<TextView android:id="@+id/tv3"
android:layout_width="180dip"
android:layout_height="120dip"
android:gravity="bottom"
android:textColor="#FFFFFF"
android:background="#0000CC"
android:text="第 3 个TextView"/>
<Button android:id="@+id/btn"
android:layout_width="fill_parent"
android:layout_height="40dip"
android:text="后来者居上"/>
</FrameLayout>
【2】LinearLayout线性布局
线性布局使所有子控件在某水平或竖直方向上自成一行,具体的方向取决于你怎么定义orientation属性。所有的子控件都一个紧挨着一个,所以一个竖直的序列每行都只能拥有一个子控件,不管它们有多宽,同样的,一个水平的序列将只拥有一个行高度(最高的子控件的高度加上控件周边的填充)。一个线性布局会为每一个子控件处理它们之间的空隙及摆放位置(靠右,居中,或者左对齐)。
线性布局也支持为每一个独立的自控件赋上权值(weight)。这个属性为一个view控件赋上一个“重要度”,并且允许它自动扩展来填满父view的剩余空间。子view们可以设置一个整型的权值,然后在布局中任何剩余的空间将被按照子view的权值来进行分配。默认权值是0。具体这么理解好了,假如只有两个控件,然后一个控件的权值是1,另一个是2,那么剩余空间的分配情况就是第一个占1/3,第二个占2/3。
具体见如下示例:
XML布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="label1"
android:background="#CC0000"
android:layout_weight="1"/>
<TextView android:id="@+id/tv2"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="label2"
android:background="#00CC00"
android:layout_weight="2"/>
<TextView android:id="@+id/tv3"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="label3"
android:background="#0000CC"
android:layout_weight="3"/>
</LinearLayout>
需要说明的是,布局之间可以嵌套,也就是说在LinearLayout布局中可以嵌套LinearLayout或者是其他布局。实际上若是能够用好LinearLayout的话,也能实现较好的界面效果了。下面这个例子就是用LinearLayout搭建了一个简单的登录窗口:
XML布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView android:id="@+id/tv1"
android:layout_width="90dip"
android:layout_height="wrap_content"
android:text="用户名:"
android:gravity="left"/>
<EditText android:id="@+id/et1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLines="1"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView android:id="@+id/tv2"
android:layout_width="90dip"
android:layout_height="wrap_content"
android:text="密码:"
android:gravity="left"/>
<EditText android:id="@+id/et2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:password="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:orientation="horizontal">
<Button android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" 登录 "
android:layout_marginLeft="160dip"/>
<Button android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" 取消 "
android:layout_marginLeft="27dip"/>
</LinearLayout>
</LinearLayout>
说明:在使用LinearLayout布局时,要注意与layout_marginxxx、padding属性设置的配合。
分享到:
相关推荐
在iOS开发中,尽管苹果提供了其独特的Auto Layout系统来实现界面布局,但有时开发者可能会觉得它的学习曲线较陡峭,或者对于熟悉Android布局的人来说不够直观。"IOS-类似Android的布局方式"是一个针对这种情况的解决...
Android中常用的5大布局方式有以下几种:...线性布局是Android开发中最常见的一种布局方式,它是按照垂直或者水平方向来布局,通过“android:orientation”属性可以设置线性布局的方向。属性值有垂直(vertical)和水平
在Android开发中,布局管理器是构建用户界面的关键部分,其中相对布局(RelativeLayout)是一种常见的布局方式。相对布局允许我们根据各个视图之间的相对位置来安排它们,这为设计复杂且灵活的用户界面提供了可能。...
本文将深入探讨Android布局的各种类型及其使用方法,旨在帮助开发者更好地理解和掌握Android应用的UI设计。 首先,我们来了解Android中的基本布局类型: 1. **线性布局(LinearLayout)**:这是最基础的布局,它...
下面我们将详细探讨Android布局及其在实际应用中的使用。 Android支持多种布局管理器,每种都有其特定的用途: 1. **线性布局(LinearLayout)**:这是最基础的布局,可以将子视图水平或垂直排列。通过设置`...
在Android中,这通常涉及到创建一个简单的布局,展示一个TextView显示“Hello World!”。这个过程涵盖了创建XML布局文件、设置TextView的ID和文本,以及在Activity中加载这个布局。 6、布局类型 Android提供了...
在Android应用开发中,XML布局文件是构建用户界面(UI)的主要方式,它允许开发者以声明式编程的方式定义UI元素的结构和样式。"Android xml布局文件生成工具"是为了解决手动编写XML布局文件繁琐和耗时的问题而设计的...
理解Android布局文件的使用是开发过程中必不可少的技能。通过LinearLayout,我们可以创建简单的线性布局,控制控件的排列方式和大小。随着学习的深入,还可以探索更复杂的布局容器,如RelativeLayout、...
Android XML 布局属性是 Android 应用程序中最基本也是最重要的一部分。它负责控制屏幕上的各种控件的布局和排列。 Android XML 布局属性可以分为三类:第一类是属性值为 true 或 false 的布局属性,第二类是属性值...
在Android开发中,自定义布局是提升应用独特性和用户体验的重要手段。`CircleLayout`就是一种特殊的自定义布局,它使得内部的子视图按照圆形排列,增强了界面的视觉效果。本篇文章将深入探讨如何实现这样一个自定义...
在Android开发中,框架布局(FrameLayout)是基础布局之一,它允许你在屏幕上放置一个或多个视图,并且这些视图会按照它们被添加到布局中的顺序覆盖彼此。本教程将深入探讨如何有效地使用Android框架布局,这对于...
在Android开发中,布局(Layout)是构建用户界面的基础元素,它定义了屏幕上控件的排列方式和相互关系。本文将深入探讨Android中常见的几种布局及其使用方法,以帮助开发者更好地构建美观且功能丰富的应用程序。 一...
在Android开发中,布局是构建用户界面的基础,它定义了屏幕上元素的位置和排列方式。绝对布局(AbsoluteLayout)是Android提供的一种布局方式,允许开发者精确地控制每个子视图(View)的位置。本文将深入探讨绝对...
在Android应用开发中,布局是构建用户界面的关键环节,它决定了控件的排列方式和外观。其中,相对布局(RelativeLayout)是一种常用的布局方式,通过定义控件之间的相对位置,可以灵活地调整界面元素的布局。以下是...
Android 中有七种常见的布局方式,即线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图(List View)和绝对布局...
在Android应用开发中,界面布局的设计是至关重要的。RelativeLayout是一种常用的布局管理器,它允许控件根据相对位置进行排列,提供了灵活的布局方案。本文主要介绍如何使用RelativeLayout来实现一个特殊的“梅花...
本文将详细介绍Android中三种常见的布局方式:LinearLayout(线性布局)、RelativeLayout(相对布局)以及TableLayout(表格布局),并深入探讨它们的特点和应用场景。 #### 1. LinearLayout(线性布局) 线性布局...
在Android开发中,布局管理是应用界面设计...这些方法提供了一种更为动态和灵活的方式来控制Android布局的可见性,使得应用的交互更加丰富和有趣。在实际开发中,应根据应用场景选择合适的方法,以实现最佳的用户体验。
在Android开发中,布局...通过下载并研究"android框架布局demo",你将有机会亲手实践这些概念,进一步加深对Android布局管理的理解,并提高你的应用开发技能。记得不断探索和尝试,让自己的应用界面更加精美和高效。
在Android应用开发中,卡片布局(Card View)是一种常见的UI设计模式,用于呈现信息块,使其看起来像一张张卡片,以此提升用户体验并增加界面的视觉吸引力。卡片布局通常包含一个标题、内容以及可能的附加信息,如...