文档介绍:《《 Android Android 应用程序设计应用程序设计》》第第2 2章章 Android Android 屏幕布局屏幕布局李华忠梁永生刘涛主编*人民邮电出版社提纲提纲? 项目导引? 项目分析? 技术准备 线性布局( LinearLayout ) 相对布局( RelativeLayout ) 表单布局( TableLayout ) 单帧布局( FrameLayout ) 坐标布局( AbsoluteLayout ) 切换卡( TabWidget ) 提纲提纲? 项目实施? 技术拓展: <include> 和自定义控件? 本章小结? 强化练**** 项目导引项目导引?随着 Android 操作系统的不断普及,越来越多的应用也随之诞生。怎么样才能设计和开发一款让用户接受和喜欢的 Android 应用已经越来越重要。那么这就需要我们了解 Android UI 设计。而谈到 UI,我们不得不学****Android 为我们提供的 Android 屏幕布局控件。?顾名思义,布局对象就是用于指明可视组件的布置方式,它本身是不可见的。我们通过本章的学****能够掌握 Android 屏幕布局的基本知识。并能够构建一个完美的屏幕布局。 项目分析项目分析布局管理器(我们更****惯称之为布局)是 ViewGroup 的子类,用来控制子控件在屏幕中的位置。布局是可以嵌套的,因此可以使用多个布局管理器的组合来创建任何复杂的界面。在 AndroidSDK 中已经内置了几个简单的布局模型供我们使用,可以由用户决定选择那些合适的布局组合来让界面更加利于理解和使用。下面我们将学****这几种布局模型,并配有实例以方便理解。? LinearLayout : 线性布局,分为水平线性布局和垂直线性布局,是我们最常用的一种布局方式。在线性布局里面我们可以放多个控件,但是一行或者一列只能放一个控件。? RelativeLayout : 相对布局,与线性布局一样, 在里面我们可以放多个控件,但是每个控件的位置都是相对的。我们可以定义每一个子 View 与其他子 View 之间以及与屏幕边界之间的相对位置。? TableLayout : 表格布局,在表格布局中我们可以使用多行多列的表格来布局 View. 表可以跨越多行和多列,而且列可以设置为收缩或者增大的。在 Android SDK 中主要包含以下几种布局: ? FrameLayout : 单帧布局,是最简单的布局管理器,它只是把控件放置在 View 的左上角,当我们添加一个新的 View 子类时,它会把每一个新的子 View 放到最上层。? AbsoluteLayout : 绝对布局或者坐标布局,顾名思义,在这个方式下的子 View 的位置都是绝对的。使用这个类的好处是我们可以使我们的布局更加精确,但是却丧失了它的自适应的能力。? TabWidget : 切换卡,这是个特殊的布局模式, 主要功能是实现标签切换,类似于 Android 系统“联系人”和“通话记录”的样式。如何运用布局文件来完成项目需要呢?如何才能在项目中灵活运用布局呢?本章将首先学****布局的基本知识,然后通过项目实战来学****布局的使用。 技术准备技术准备 线性布局( LinearLayout ) 线性布局是在开发中最常用到的布局方式之一,它提供了控件水平或者垂直排列的模型,但是需要注意在一行或者一列中只能放一个子 View 。 LinearLayout 还支持为其包含的 widget 或者是 container 指定填充权值。好处就是允许其包含的 widget 或者是 container 可以填充屏幕上的剩余空间。这也避免了在一个大屏幕中,一串 widgets 或者是 containers 挤成一堆的情况,而是允许它们放大填充空白。剩余的空间会按这些 widgets 或者是 containers 指定的权值比例分配屏幕。默认的 weight 值为 0,表示按照 widgets 或者是 containers 实际大小来显示,若高于 0的值,则将 container 剩余可用空间分割,分割大小具体取决于每一个 widget 或者是 container 的 layout_weight 及该权值在所有 widgets 或者是 containers 中的比例。 技术准备技术准备 线性布局( LinearLayout ) 例如,如果有 3个文本框,其中两个指定的权值为 1, 那么,这两个文本框将等比例地放大,并填满剩余的空间,而第 3