Android xml 布局

來源:互聯網
上載者:User

首先按照程式的目錄結構大致分析: 
  res/layout/ 這個目錄存放的就是布局用的xml檔案,一般預設為main.xml 
  res/values/ 這個目錄存放的是一堆常量的xml檔案 
  res/drawable/ 存放的是一些圖片什麼的,當然表徵圖也在這裡 
  下面主要對layout下的xml檔案做個介紹,順便也把布局的方法總結一下: 
  ·檔案的開頭 
  <?xml version="1.0" encoding="utf-8"?> 
  這是在說明xml版本及字元編碼 
  ·緊接著到了關鍵的部分: 
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ android" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"> 
  </LinearLayout> 
  其中開頭的"LinearLayout"是布局的方式,可以有很多種,最常用的應該就是Linear了,其他的布局方法等下在後面總結。 
  接著android:layout_width(height)="wrap_content"是在設定這部分布局的寬高,也可以是絕對值,當然設定為絕對值時要標上單位。 
  ·在<LinearLayout ...>和</LinearLayout>就之間可以添加控制項了,比如要添加一個名字為btn的Button控制項,並且Button上顯示的文字是"Test!",可以這樣寫: 
  <Button id="@+id/btn" 
  android:text="Test!" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"   />
  開頭id後面的就是控制項名稱,在用於添加事件Listener時會用到,而下幾行的android:xxx就是設定控制項的屬性了,這些屬性在Android的文檔中都有,不需要特別去記,一般現查就可以了。 
  ·有一點要說明的是,布局方法可以嵌套,有點像java中的Container,可以非常方便的把介面“堆”出來。 
  布局方式的簡單說明: 
  查了Android文檔發現布局確實很多,只列出兩個我自己認為較常用的: 
  ·LinearLayout線性布局方式,要麼上下,要麼左右的添加控制項,很常用; 
  ·GridView中文翻譯過來是網格布局,控制項按照順序依次填到每個格子裡就好了,出來的介面會很整齊,較常用; 
  具體的幾個布局如下: 
  @ <1> LinearLayout(線性布局)提供了控制項水平垂直排列的模型,同時可以通過設定子控制項的weight布局參數控制各個控制項在布局中的相對大小。水平(vertical)垂直(horizontal) 
  fill-parent:佔滿整個螢幕,wrap-content:剛好適合控制項內容的大小 
  對齊gravity取值: 
  top:不改變大小,位置置於容器的頂部 
  bottom:不改變大小,位置置於容器的底部 
  left:不改變大小,位置置於容器的左邊 
  right:不改變大小,位置置於容器的右邊 
  center_vertical:不改變大小,位置置於容器的縱向中央部分 
  center_horizontal:不改變大小,位置置於容器的橫向中央部分 
  center:不改變大小,位置置於容器的橫向和縱向的中央部分 
  fill_vertical:可能的話,縱向延伸可以填滿容器 
  fiil_horizontal:可能的話,橫向延伸可以填滿容器 
  fiil:可能的話,縱向和橫向延伸填滿容器 
  @<2> AbsoluteLayout(座標布局)可以讓子項目指定準確的x/y座標值,並顯示在螢幕上。(0, 0)為左上方,當向下或向右移動時,座標值將變大。AbsoluteLayout沒有頁邊框,允許元素之間互相重疊(儘管不推薦)。我們通常不推薦使用AbsoluteLayout,除非你有正當理由要使用它,因為它使介面代碼太過剛性,以至於在不同的裝置上可能不能很好地工作。 
  Android:layout_x/layout_y=”56px”確定控制項位置 
  @<3> RelativeLayout(相對布局)允許子項目指定他們相對於其它元素或父元素的位置(通過ID指定)。因此,你可以以靠右對齊,或上下,或置於螢幕中央的形式來排列兩個元素。元素按順序排列,因此如果第一個元素在螢幕的中央,那麼相對於這個元素的其它元素將以螢幕中央的相對位置來排列。如果使用XML來指定這個layout,在你定義它之前,被關聯的元素必須定義。 
  Android:layout_centerInparent, 將當前控制項放置於起父控制項的橫向和縱向的中央部分              Android:layout_centerHorizontal, 使當前控制項置於父控制項橫向的中央部分 
  Android:layout_centerVertival,   使當前控制項置於父控制項縱向的中央部分 
  Android:layout_alignParentLeft, 使當前控制項的左端和父控制項左端對齊 
  Android:layout_alignParentRight, 使當前控制項的右端和父控制項右端對齊 
  Android:layout_alignParentTop,   使當前控制項的頂端和父控制項頂端對齊 
  Android:layout_alignParentBottom,使當前控制項的底端和父控制項底端對齊 
  上述屬性只能設定Bool類型的值,“true”或“false” 
  Android:layout_below/layout_above/ layout_toLeftOf/ layout_toRightOf =“@id/”使當前控制項置於給出id的空間的下方/上方/左邊/右邊 
  Android:layout_marginBottom/layout_marginLeft/layo ut_marginRight/layout_marginTop=”30px”使當前控制項底部/左邊/右邊/頂部空出相應像素空間 
  @<4> FrameLayout(單幀布局)是最簡單的一個布局對象。它被定製為你螢幕上的一個空白備用地區,之後你可以在其中填充一個單一對象— 比如,一張你要發布的圖片。所有的子項目將會固定在螢幕的左上方;你不能為FrameLayout中的一個子項目指定一個位置。後一個子項目將會直接在前一個子項目之上進行覆蓋填充,把它們部份或全部擋住(除非後一個子項目是透明的)。

Android:src=http://blog.soso.com/qz.q/”@drawable/”屬性指定所需圖片的檔案位置,用ImageView顯示圖片時,也應當用android:src指定要顯示的圖片 
  @<5> TableLayout(表格版面配置)以行列的形式管理子控制項,每一行為一個TableRow的對象,TableRow也可以添加子控制項 
  android:collapseColumns=“n”隱藏TableLayout裡面的TableRow的列n 
  android:stretchColumns=“n” 設定列n為可延伸的列 
  android:shrinkColumns=“n” 設定列n為可收縮的列 
Android:src=http://blog.soso.com/qz.q/”@drawable/”屬性指定所需圖片的檔案位置,用ImageView顯示圖片時,也應當用android:src指定要顯示的圖片

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.