Android学习笔记:<三>Activity布局初步

来源:互联网 发布:新网域名证书 编辑:程序博客网 时间:2024/05/18 03:51

一、LinerLayout布局:线性布局

是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。

属性如下:

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

android:orientation="vertical"线性布局的方向:vertical(垂直方向)

                                                                                     horizontal(水平方向)

android:layout_width="fill_parent"

填充方式:fill_parent:设置一个顶部布局或控件为fill_parent将强制性让它填充父控件

match_parent:设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextViewImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小

wrap_contentAndroid2.2match_parentfill_parent是一个意思 .两个参数意思一样,那么如果考虑低版本的使用情况你就需要用fill_parent

    android:layout_height="fill_parent">

<!--

    android:id  —— 为控件指定相应的ID

    android:text—— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串

    android:grivity—— 指定控件的内容的基本位置,比如说居中,居右等位置


android:textSize—— 指定控件当中字体的大小(pt是镑的意思)

    android:background—— 指定该控件所使用的背景色,RGB命名法:#aa0000

    android:width—— 指定控件的宽度

    android:height—— 指定控件的高度

    android:padding*—— 指定控件的内边距,也就是说控件当中的内容paddingLeft、paddingTop、paddingRight、paddingBottom,如果只有padding,则说明四个内边框值均为该值


android:sigleLine ——如果设置为真的话,则将控件的内容在同一行当中进行显示,如果字数太多无法完全显示,将会以省略号的形式显示

android:layout_weight——如果有两个控件,第一个控件的weight为1,第二个控件的weight为2,那么控件一的高度为linerlayout高度的三分之一,控件二位三分之二

     -->

<TextView

        android:id="@+id/firstText"

        android:text="第一行"

        android:gravity="center_vertical"

        android:textSize="35pt"

        android:background="#aa0000"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:paddingLeft="10dip"

        android:paddingTop="20dip"

        android:paddingRight="30dip"

  android:paddingBottom="40dip"
android:layout_weight="1"

        android:singleLine="true"/>

</LinearLayout>


二、TableLayout布局:表格布局

<?xml version="1.0"encoding="utf-8"?>

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

   android:layout_width="fill_parent"

   android:layout_height="fill_parent"

    android:stretchColumns="2">使用第三列作为拉伸列,如果该行未填充满,则拉伸第三列使整行填充整个屏幕(序号从0开始)


 <TableRow>一个TableRow占一行,该行有三个TextView,即为三列

       <TextView

           android:text="@string/row1_column1"

           android:background="#aa0000"

           android:padding="3dip" />上下左右内边距都为3dip

       <TextView

                android:text="@string/row1_column1"

                android:padding="3dip"

                android:gravity="center_horizontal"

           android:background="#00aa00"

                ></TextView>

       <TextView

           android:text="@string/row1_column2"

           android:gravity="right"

           android:background="#0000aa"

           android:padding="3dip" />

   </TableRow> 

   <TableRow>

       <TextView

           android:text="@string/row2_column1"

           android:padding="3dip" />

       <TextView

           android:text="@string/row2_column2"

           android:gravity="right"

           android:padding="3dip" />

   </TableRow>

</TableLayout> 


三、TableLayoutLinearLayout是可以嵌套的

<?xml version="1.0"encoding="utf-8"?>

<LinearLayoutxmlns: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  />

                   <TextView  />

                   <TextView  />

     </LinearLayout>      

    <LinearLayout

             android:orientation="vertical"

           android:layout_width="fill_parent"

               android:layout_height="fill_parent"

             android:layout_weight="1">

         <TableLayout

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

                            android:layout_width="fill_parent"

                            android:layout_height="fill_parent"

                            android:stretchColumns="0">

                            <TableRow>

                                     <TextView/>

                                     <TextView/>

                                              

                            </TableRow>

                            <TableRow>

                                     <TextView  />

                                     <TextView />

                            </TableRow>

                   </TableLayout>

     </LinearLayout>

</LinearLayout>


四、RelativeLayout相对布局

         android:layout_above 将该控件的底部至于给定ID的控件之上

         android:layout_below将该控件的顶部至于给定ID的控件之下

         android:layout_toLeftOf将该控件的右边缘和给定ID的控件的左边缘对齐

         android:layout_toRightOf将该控件的左边缘和给定ID的控件的右边缘对齐

 

         android:layout_alignBaseline该控件的baseline和给定ID的控件的baseline对齐

         android:layout_alignBottom将该控件的底部边缘与给定ID控件的底部边缘

         android:layout_alignLeft将该控件的左边缘与给定ID控件的左边缘对齐

         android:layout_alignRight将该控件的右边缘与给定ID控件的右边缘对齐

         android:layout_alignTop将给定控件的顶部边缘与给定ID控件的顶部对齐

 

 

         android:alignParentBottom如果该值为true,则将该控件的底部和父控件的底部对齐

         android:layout_alignParentLeft如果该值为true,则将该控件的左边与父控件的左边对齐

         android:layout_alignParentRight如果该值为true,则将该控件的右边与父控件的右边对齐

         android:layout_alignParentTop如果该值为true,则将空间的顶部与父控件的顶部对齐

 

         android:layout_centerHorizontal如果值为真,该控件将被至于水平方向的中央

         android:layout_centerInParent如果值为真,该控件将被至于父控件水平方向和垂直方向的中央

         android:layout_centerVertical如果值为真,该控件将被至于垂直方向的中央

 

         <EditTextandroid:id="@+id/entry"

             android:layout_width="fill_parent"

             android:layout_height="wrap_content"

             android:background="@android:drawable/editbox_background"

             android:layout_below="@id/label"/>将控件entry至于控件label之下

 

   <Button android:id="@+id/ok"

           android:layout_width="wrap_content"

           android:layout_height="wrap_content"

           android:layout_below="@id/entry"

           android:layout_alignParentRight="true"将该控件的右边与父控件的右边对齐

           android:layout_marginLeft="10px"  控件与左边界距离10px

           android:text="OK" />