Android學習筆記(三)UI佈局 – Android移動開發技術文章_手機開發 Android移動開發教學課程

一、線性佈局-LinearLayout(至上而下佈局)
<LinearLayout>
</LinearLayout>
如:
Java代碼 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical"    
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
 
  
 其中
android:orientation="vertical"意思為垂直
方向的線性佈局,此處的"vertical"可改為"horizontal",意思是水平方向的線性佈局。
android:layout_width="fill_parent"意思為這個控件的寬度占滿整個屏幕或者父控件,此處的"fill_parent"可改為"wrap_parant",意思是寬度剛好包含住LinearLayout裡面的內容。
 
常用佈局控件:
 
 

android:id 

 為控件指定相應的ID

 android:text

 指定控件當中顯示的文字,需要註意的是,這裡盡量使用strings.xml文件當中的字符串

 android:gravity

 控制這個一個控件的位置,比如居中、靠右、底部、上部等

 android:textSize

 指定控件當中字體的大小

 android:background

 指定該控件所使用的背景色,RGB命名法

 android:layout_weight

 數值為幾即該控件占滿整個屏幕的數值合之幾,比如當前Activity中有2個控件,第一個控件是android:layout_weight="2",第二個控件是android:layout_weight="3",則,第一個控件占整個屏幕的3/5。

 android:height

 指定控件的高度

 android:padding*

 指定控件的內邊距,也就是說控件當中的內容,如android:paddingLeft="10dip"、android:paddingRight="10dip"等等。也可以直接android:padding="10dip"意思是說內邊距4面距離都為10.

 android:singleLine

 如果設置為真的話,則將控件的所有內容在同一行當中進行顯示

 

 
二、表格佈局-TableLayout
概述:
TableLayout多用於列表的顯示
1、把子元素放到行與列中。
2、不顯示行、列和單元格的邊界線。
3、單元格不能橫跨行,類似於html。
 
用例:
Java代碼 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:stretchColumns="1"> //這一條語句的意思是:是設置 TableLayout所有行的第二列為拉伸列。也就是說如果每行都有三列的話,剩餘的空間由第二列補齊。為0時則是第一列為拉伸列。目的是為瞭把父控件填滿。 
 
<TableLayout> 
       <tableRow> 
             <TextView 
                 android:text="@string/row1_column1" 
                 android:background="#aa0000"    //加上背景色 
                 android:padding="3dip" 
 
         /> 
             <TextView 
                 android:text="@string/row1_column1" 
                 android:padding="3dip" 
                 android:gravity="center_horizontal"   //垂直居中顯示 
                 android:background="#00aa00" 
             / > 
             <TextView 
                 android:text="@string/row1_column2" 
                 android:gravity="right"       //居右顯示 
                 android:background="#0000aa" 
                 android:padding="3dip" 
 
         /> 
      </TablieRow> 
</TableLayout> 
 以上代碼意思為:將屏幕分為3列,一個TableRow就是一行,每一個TextView占一個單元格
   
 
三、嵌套佈局
即多個佈局嵌套使用。
如要實現以下佈局:即多個LinearLayout嵌套
 

Android學習筆記(三)UI佈局
 

代碼如下:
Java代碼 
<?xml version="1.0" encoding="utf-8"?> 
<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">  //需要註意的是嵌套的LinearLayout權重都是1,即各自占屏幕的一半。 
    </LinearLayout> 
      
    <LinearLayout 
     android:orientation="vertical"  //第二個嵌套垂直佈局 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1"> 
    </LinearLayout> 
</LinearLayout> 
  四、相對佈局-RelativeLayout
概念:
類似於CSS+DIV佈局。
 一個控件的位置,決定於他和周圍控件的關系。
 
與其他控件的區別:
相對佈局是依賴與和周圍控件的關系而決定為位置的,如將A控件放在B控件的下方。
 
相關屬性:
   第一類:
Java代碼 
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:layout_alignParentBottom 如果該值為true,則將該控件的底部和父控件的底部對齊 
    android:layout_alignParentLeft 如果該值為true,則將該控件的左邊與父控件的左邊對齊 
    android:layout_alignParentRight 如果該值為true,則將該控件的右邊與父控件的右邊對齊 
    android:layout_alignParentTop 如果該值為true,則將控件的頂部與父控件的頂部對齊 
   
    android:layout_centerHorizontal 如果值為真,該控件將被至於水平方向的中央 
    android:layout_centerInParent 如果值為真,該控件將被至於父控件水平方向和垂直方向的中央 
    android:layout_centerVertical 如果值為真,該控件將被至於垂直方向的中央 
     
 
    通俗的理解 Padding 為內邊框,Margin 為外邊框 
 
    對應的屬性為 
 
    android:layout_marginBottom="25dip" 
    android:layout_marginLeft="10dip" 
    android:layout_marginTop="10dip" 
    android:layout_marginRight="10dip" 
    android:paddingLeft="1dip" 
    android:paddingTop="1dip" 
    android:paddingRight="1dip" 
    android:paddingBottom="1dip" 
 
    如果左右上下都是相同的設置則可以直接設置 
 
    android:layout_margin="10dip" 
    android:padding="5dip" 

 

本文出自“suuu”


 

發佈留言