Android中的线性布局管理器用LinearLayout表示,它是将放入其中的组件按照垂直或水平方向来布局,也就是控制放入其中的组件横向排列或纵向排列。
在Android中,可以在XML布局文件中定义线性布局管理器,也可以使用JAVA代码来创建,推荐使用XML布局文件定义。
在线性布局管理器中,常用的属性包括:
android:orientation,android:gravity,android:layout_width,android:layout_height,android:id,android:background.其中前两个是线性布局管理器支持的属性,后面4个是android:view.View和android.view.ViewGroup支持的属性。
Android:orientation属性
用于设置布局管理器内组件的排列方式,其可选值为horizontal和vertical,默认值为vertical。horizontal表示水平排序,veritical表示垂直排序
Android:gravity属性
用于设置布局管理器内组件的对齐方式,这些属性值可以同时指定也可以单独指定,同时指定时需要用竖线在各属性之间隔开。
Android:background属性
Android:backgound属性用于为该组件设置背景。可以是背景图片,也可以是背景颜色。为组件指定背景图片时,可以将准备好的背景图片复制到目录下,然后使用下面的代码进行设置。
实现过程:
修改项目的res/layout/main.xml文件,在默认添加的垂直线性布局管理器中添加两个嵌套的,然后设置第一个的排序方式为水平排列,在其中添加4个水平并排的TextView组件,并分别设置TextView组件的文本对齐方式;设置第二个的排序方式为垂直排序,并在其中添加4个垂直并排的TextView组件。修改后的代码如下:
<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:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="红色"
android:layout_gravity="center"
android:background="#aa0000"
android:layout_weight="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="蓝色"
android:background="#0000aa"
android:layout_gravity="top|center"
android:layout_weight="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="黄色"
android:background="#aaaa00"
android:layout_gravity="bottom|center"
android:layout_weight="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="绿色"
android:background="#00aa00"
android:layout_gravity="fill_vertical"
android:layout_weight="1"
/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="第一行"
android:layout_weight="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="第二行"
android:layout_weight="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="第三行"
android:layout_weight="1"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="第四行"
android:layout_weight="1"
/>
</LinearLayout>
</LinearLayout>
Android:layout_weight属性:
该属性用来设置组件的占用空间,比如在线性布局中添加3个TextView组件,他们的android:layout_weight属性分别设置为2,1,1,则他们所占的空间分别为1/2,1/4和1/4.