• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
zgr.Phoenix
博客园    首页    新随笔    联系   管理    订阅  订阅

Android的布局

  Android的UI组件控制分为用xml文件控制,直接用java代码控制,以及用xml文件和java代码混合控制。一般把变化比较小,行为比较固定的组件用xml文件控制,而变化比较大,行为比较复杂的组件用java代码来控制。适用xml文件和java代码一起控制UI组件可以使得界面控制很精细,很酷炫。

  xml文件一般写在Android应用程序的res/layout文件夹中,任何符合Java编程规范的文件命名皆可。Amdroid布局大致分为线性布局,表格布局,帧布局,相对布局(其实还有个绝对布局,适用坐标点直接精确定位组件位置,但是对于安卓机大小多变的屏幕,绝对布局的适应性较差,不同屏幕大小的组件的显示位置可能显示不同,非常难调整,目前已经过时了)。

-----------------------------------------------------------------华丽丽滴分割线-------------------------------------------------------------------------------

  1.线性布局(LinearLayout)

线性布局把组件按照水平,垂直方向放置,也就是控制放入其中的组件横向排列或纵向排列。在线性布局中,每一行(针对垂直排列)或每一列(针对水平排列)中只能放一个组件。并且Android的线性布局不会换行,当组件一个挨着一个排列到窗体的边缘后,剩下的组件将不会被显示出来。

  在Android中,可以在XML布局文件中定义线性布局管理器,也可以使用Java代码来创建。推荐使用在XML布局文件中定义线性布局管理器。在XML布局文件中定义线性布局管理器,需要使用<LinearLayout>标记,其基本的语法格式如下:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    属性列表

>

</LinearLayout>

-----------------------------------------------------------------华丽丽滴分割线-------------------------------------------------------------------------------

  2.表格布局(TableLayout)

表格布局用行和列来管理放入的UI组件,表格布局使用<TableLayout>标记定义,在表格布局中,可以添加多个<TableRow>标记,每个<TableRow>标记占用一行,由于<TableRow>标记也是容器,所以在该标记中还可添加其他组件,在<TableRow>标记中,每添加一个组件,表格就会增加一列。在表格布局中,列可以被隐藏,也可以被设置为伸展的,从而填充可利用的屏幕空间,也可以设置为强制收缩,直到表格匹配屏幕大小。

  在XML布局文件中定义表格布局管理器的基本的语法格式如下:

<TableLayout  xmlns:android="http://schemas.android.com/apk/res/android"

         属性列表

>

         <TableRow 属性列表> 需要添加的UI组件 </TableRow>

         多个<TableRow>

</TableLayout>

  表格布局有许多可控属性,可以控制需要隐藏的列以及控制列的收缩和拉伸

XML属性

描述

android:collapseColumns

设置需要被隐藏的列的列序号(序号从0开始),多个列序号之间用逗号“,”分隔

android:shrinkColumns

设置允许被收缩的列的列序号(序号从0开始),多个列序号之间用逗号“,”分隔

android:stretchColumns

设置允许被拉伸的列的列序号(序号从0开始),多个列序号之间用逗号“,”分隔

-----------------------------------------------------------------华丽丽滴分割线-------------------------------------------------------------------------------

  3.帧布局(FrameLayout)

  在帧布局中,增加一个组件容器中会创建一个空白的区域,通常称为一帧,

这些帧都会根据gravity属性执行自动对齐。默认情况下,帧布局是从屏幕的左上角(0,0)坐标点开始布局,多个组件层叠排序,后面的组件覆盖前面的组件。

  在XML布局文件中,定义帧布局管理器可以使用<FrameLayout>标记,其基本的语法格式如下:

 < FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

属性列表

>

</ FrameLayout>

    帧布局可以控制组件的对其方式,属性如下:

XML属性

描述

android:foreground

设置该帧布局容器的前景图像

android:foregroundGravity

定义绘制前景图像的gravity属性,也就是前景图像显示的位置

-----------------------------------------------------------------华丽丽滴分割线-------------------------------------------------------------------------------

  4.相对布局(RelativeLayout)

  相对布局是指按照组件之间的相对位置来进行布局,如某个组件在另一个组件的左边、右边、上方或下方等。

      在XML布局文件中,定义相对布局管理器可以使用<RelativeLayout>标记,其基本的语法格式如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

属性列表

>

</RelativeLayout>

 

XML属性

描述

android:gravity

用于设置布局管理器中各子组件的对齐方式

android:ignoreGravity

用于指定哪个组件不受gravity属性的影响

 

RelativeLayout.LayoutParams支持的常用XML属性如下表所示。

XML属性

描述

android:gravity

用于设置布局管理器中各子组件的对齐方式

android:ignoreGravity

用于指定哪个组件不受gravity属性的影响

XML属性

描述

android:layout_above

其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的上方

android:layout_alignBottom

其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的下边界对齐

android:layout_alignLeft

其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的左边界对齐

android:layout_alignParentBottom

其属性值为boolean值,用于指定该组件是否与布局管理器底端对齐

android:layout_alignParentLeft

其属性值为boolean值,用于指定该组件是否与布局管理器左边对齐

android:layout_alignParentRight

其属性值为boolean值,用于指定该组件是否与布局管理器右边对齐

android:layout_alignParentTop

其属性值为boolean值,用于指定该组件是否与布局管理器顶端对齐

android:layout_alignRight

其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的右边界对齐

android:layout_alignTop

其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的上边界对齐

android:layout_below

其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的下方

android:layout_centerHorizontal

其属性值为boolean值,用于指定该组件是否位于布局管理器水平居中的位置

android:layout_centerInParent

其属性值为boolean值,用于指定该组件是否位于布局管理器的中央位置

android:layout_centerVertical

其属性值为boolean值,用于指定该组件是否位于布局管理器垂直居中的位置

android:layout_toLeftOf

其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的左侧

android:layout_toRightOf

其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的右侧

 

-----------------------------------------------------------------华丽丽滴分割线-------------------------------------------------------------------------------

  混合使用多种布局方式便可以达到较为复杂的图形化界面效果,如使用线性布局和相对布局实现游戏的开始界面

  用线性布局和表格布局实现Android快捷功能的显示

posted @ 2014-07-23 00:21  zgr.Phoenix  阅读(268)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3