`
runfeel
  • 浏览: 935721 次
文章分类
社区版块
存档分类
最新评论

Android中的布局方式(一)

 
阅读更多

Android中的布局方式(一)

1FrameLayout帧布局

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>

2LinearLayout线性布局

线性布局使所有子控件在某水平或竖直方向上自成一行,具体的方向取决于你怎么定义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_marginxxxpadding属性设置的配合。

分享到:
评论

相关推荐

    IOS-类似Android的布局方式

    在iOS开发中,尽管苹果提供了其独特的Auto Layout系统来实现界面布局,但有时开发者可能会觉得它的学习曲线较陡峭,或者对于熟悉Android布局的人来说不够直观。"IOS-类似Android的布局方式"是一个针对这种情况的解决...

    Android 五大布局方式详解

    Android中常用的5大布局方式有以下几种:...线性布局是Android开发中最常见的一种布局方式,它是按照垂直或者水平方向来布局,通过“android:orientation”属性可以设置线性布局的方向。属性值有垂直(vertical)和水平

    Android 相对布局实例

    在Android开发中,布局管理器是构建用户界面的关键部分,其中相对布局(RelativeLayout)是一种常见的布局方式。相对布局允许我们根据各个视图之间的相对位置来安排它们,这为设计复杂且灵活的用户界面提供了可能。...

    android布局_Android布局_android_

    本文将深入探讨Android布局的各种类型及其使用方法,旨在帮助开发者更好地理解和掌握Android应用的UI设计。 首先,我们来了解Android中的基本布局类型: 1. **线性布局(LinearLayout)**:这是最基础的布局,它...

    android 中页面布局使用demo

    下面我们将详细探讨Android布局及其在实际应用中的使用。 Android支持多种布局管理器,每种都有其特定的用途: 1. **线性布局(LinearLayout)**:这是最基础的布局,可以将子视图水平或垂直排列。通过设置`...

    android界面布局详解

    在Android中,这通常涉及到创建一个简单的布局,展示一个TextView显示“Hello World!”。这个过程涵盖了创建XML布局文件、设置TextView的ID和文本,以及在Activity中加载这个布局。 6、布局类型 Android提供了...

    Android xml布局文件生成工具

    在Android应用开发中,XML布局文件是构建用户界面(UI)的主要方式,它允许开发者以声明式编程的方式定义UI元素的结构和样式。"Android xml布局文件生成工具"是为了解决手动编写XML布局文件繁琐和耗时的问题而设计的...

    认识Android布局文件

    理解Android布局文件的使用是开发过程中必不可少的技能。通过LinearLayout,我们可以创建简单的线性布局,控制控件的排列方式和大小。随着学习的深入,还可以探索更复杂的布局容器,如RelativeLayout、...

    AndroidXML布局属性详解

    Android XML 布局属性是 Android 应用程序中最基本也是最重要的一部分。它负责控制屏幕上的各种控件的布局和排列。 Android XML 布局属性可以分为三类:第一类是属性值为 true 或 false 的布局属性,第二类是属性值...

    android自定义圆形布局CircleLayout

    在Android开发中,自定义布局是提升应用独特性和用户体验的重要手段。`CircleLayout`就是一种特殊的自定义布局,它使得内部的子视图按照圆形排列,增强了界面的视觉效果。本篇文章将深入探讨如何实现这样一个自定义...

    android框架布局的使用

    在Android开发中,框架布局(FrameLayout)是基础布局之一,它允许你在屏幕上放置一个或多个视图,并且这些视图会按照它们被添加到布局中的顺序覆盖彼此。本教程将深入探讨如何有效地使用Android框架布局,这对于...

    android常用布局的使用

    在Android开发中,布局(Layout)是构建用户界面的基础元素,它定义了屏幕上控件的排列方式和相互关系。本文将深入探讨Android中常见的几种布局及其使用方法,以帮助开发者更好地构建美观且功能丰富的应用程序。 一...

    Android 绝对布局的使用

    在Android开发中,布局是构建用户界面的基础,它定义了屏幕上元素的位置和排列方式。绝对布局(AbsoluteLayout)是Android提供的一种布局方式,允许开发者精确地控制每个子视图(View)的位置。本文将深入探讨绝对...

    android排版布局属性

    在Android应用开发中,布局是构建用户界面的关键环节,它决定了控件的排列方式和外观。其中,相对布局(RelativeLayout)是一种常用的布局方式,通过定义控件之间的相对位置,可以灵活地调整界面元素的布局。以下是...

    Android七种布局解析

    Android 中有七种常见的布局方式,即线性布局(Linear Layout)、相对布局(Relative Layout)、表格布局(Table Layout)、网格视图(Grid View)、标签布局(Tab Layout)、列表视图(List View)和绝对布局...

    Android中使用RelativeLayout完成梅花布局的代码清单.pdf

    在Android应用开发中,界面布局的设计是至关重要的。RelativeLayout是一种常用的布局管理器,它允许控件根据相对位置进行排列,提供了灵活的布局方案。本文主要介绍如何使用RelativeLayout来实现一个特殊的“梅花...

    Android页面布局总结

    本文将详细介绍Android中三种常见的布局方式:LinearLayout(线性布局)、RelativeLayout(相对布局)以及TableLayout(表格布局),并深入探讨它们的特点和应用场景。 #### 1. LinearLayout(线性布局) 线性布局...

    Android 显示/隐藏 布局

    在Android开发中,布局管理是应用界面设计...这些方法提供了一种更为动态和灵活的方式来控制Android布局的可见性,使得应用的交互更加丰富和有趣。在实际开发中,应根据应用场景选择合适的方法,以实现最佳的用户体验。

    android框架布局demo

    在Android开发中,布局...通过下载并研究"android框架布局demo",你将有机会亲手实践这些概念,进一步加深对Android布局管理的理解,并提高你的应用开发技能。记得不断探索和尝试,让自己的应用界面更加精美和高效。

    Android卡片布局实现

    在Android应用开发中,卡片布局(Card View)是一种常见的UI设计模式,用于呈现信息块,使其看起来像一张张卡片,以此提升用户体验并增加界面的视觉吸引力。卡片布局通常包含一个标题、内容以及可能的附加信息,如...

Global site tag (gtag.js) - Google Analytics