万书网 > 文学作品 > Android从入门到精通 > 第17页

第17页



表3.2 FrameLayout支持的常用XML属性





XML属性  描 述

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

android:foregroundGravity  定义绘制前景图像的gravity属性,即前景图像显示的位置

下面给出一个在程序中使用帧布局的实例。

例3.7   在Eclipse中创建Android项目,名称为3.7,应用帧布局居中显示层叠的正方形。(实例位置:光盘\TM\sl\3\3.7)

修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的布局代码删除,然后添加一个FrameLayout帧布局管理器,并且为其设置背景和前景,以及前景图像显示的位置,最后在该布局管理器中添加3个居中显示的TextView组件,并且为其指定不同的颜色和大小,以更好地体现层叠效果。修改后的代码如下:








android:id="@+id/frameLayout1"



android:layout_width="fill_parent"



android:layout_height="fill_parent"



xmlns:android="http://schemas.android/apk/res/android"



android:background="@drawable/background"



android:foreground="@drawable/icon"



android:foregroundGravity="bottom|right"



>










android:id="@+id/textView1"



android:background="#FFFF0000"



android:layout_gravity="center"



android:layout_width="400px"



android:layout_height="400px"/>










android:id="@+id/textView2"



android:layout_width="300px"



android:layout_height="300px"



android:background="#FFFF6600"



android:layout_gravity="center"



/>










android:id="@+id/textView3"



android:layout_width="200px"



android:layout_height="200px"



android:background="#FFFFEE00"



android:layout_gravity="center"



/>





运行本实例,将显示如图3.11所示的运行结果。



图3.11 应用帧布局居中显示层叠的正方形

说明:  帧布局经常应用在游戏开发中,用于显示自定义的视图。例如,在3.1.4节的例3.4中,实现跟随手指的小兔子时就应用了帧布局。

3.2.4 相对布局

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

在Android中,可以在XML布局文件中定义相对布局管理器,也可以使用Java代码来创建。推荐使用前者。在XML布局文件中定义相对布局管理器可以使用标记,其基本的语法格式如下:




属性列表



>





RelativeLayout支持的常用XML属性如表3.3所示。

表3.3 RelativeLayout支持的常用XML属性





XML属性  描 述

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

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

在相对布局管理器中,只有上面介绍的两个属性是不够的,为了更好地控制该布局管理器中各子组件的布局分布,RelativeLayout提供了一个内部类RelativeLayout.LayoutParams,通过该类提供的大量XML属性,可以很好地控制相对布局管理器中各组件的分布方式。RelativeLayout.LayoutParams支持的XML属性如表3.4所示。

表3.4 RelativeLayout.LayoutParams支持的常用XML属性





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值,用于指定该组件是否位于布局管理器水平居中的位置