Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android之旅第二站——界面(布局)…

Android之旅第二站——界面(布局)…

編輯:關於Android編程

Android中有五大布局: LinerLayout(線性布局)、RelativeLayout(相對布局)、Tablelayout(表格布局)、

用來控制控件的擺放。

Framelayout(層疊布局)、AbsoulteLayout(絕對布局)。

常用的是線性布局和相對布局,其他的不常用,有些甚至說不會用到。

1.LinerLayout(線性布局)

行單列的結構,每一行只會有一個元素,而不論這個元素的寬度為多少;如果是水平排列,那麼將是一個單行N列的結構。

線性布局,顧名思義,無非是水平或者垂直分布來排列控件。其中的屬性:

android:orientation(方向):Vertical(垂直)、Horizontal(水平)

android:layout_weight: 常用比例切割空白:平分空白、左右顯示、獨占空白。比較重要,之後會詳解。

2.RelativeLayout(相對布局)

RelativeLayout按照各子元素之間的位置關系完成布局。在此布局中的子元素裡與位置相關的屬性將生效。

注意在指定位置關系時,引用的ID必須在引用之前,先被定義,否則將出現異常。

RelativeLayout是Android五大布局結構中最靈活的一種布局結構,比較適合一些復雜界面的布局。

相對於控件(位於指定控件id的哪個位置):

above:位於某id控件的上方

below:位於某id控件的下方

toleftof:位於某id控件的左方

torightof:位於某id控件的右方

相對於父容器(位於整個布局的位置)

alignparentTop:位於整個布局的上方。

alignparentRight:位於整個布局的右方。

alignparentBottom:位於整個布局的下方。

alignparentLeft:位於整個布局的左方。

centerVertical:垂直居於整個布局

centerHorizontal:水平居於整個布局

centerInParent:既垂直又居中與整個布局。

3.Tablelayout(表格布局)

適用於N行N列的布局格式。一個TableLayout由許多TableRow組成,一個TableRow就代表TableLayout中的一行。

TableRow是LinearLayout的子類,ablelLayout並不需要明確地聲明包含多少行、多少列,而是通過TableRow,以及其他組件來

控制表格的行數和列數,

TableLayout繼承了LinearLayout,因此他完全可以支持LinearLayout所支持的全部XML屬性,除此之外TableLayout還支持以下

屬性:

XML屬性:andriod:collapseColumns

相關用法:setColumnsCollapsed(int,boolean)

說 明:設置需要隱藏的列的序列號,多個用逗號隔開

XML屬性:android:shrinkColumns

相關用法:setShrinkAllColumns(boolean)

說 明:設置被收縮的列的序列號,多個用逗號隔開

XML屬性:android:stretchColimns

相關用法:setSretchAllColumnds(boolean)

說 明:設置允許被拉伸的列的序列號,多個用逗號隔開

4.Framelayout(層疊布局)

FrameLayout是五大布局中最簡單的一個布局,可以說成是層布局方式。在這個布局中,整個界面被當成一塊空白備用區域,所

有的子元素都不能被指定放置的位置,它們統統放於這塊區域的左上角,並且後面的子元素直接覆蓋在前面的子元素之上,將前面

的子元素部分和全部遮擋。如下,第一個TextView被第二個TextView完全遮擋,第三個TextView遮擋了第二個TextView的部分

位置。

霓虹燈效果的制作運用的就是層疊布局。

5.AbsoulteLayout(絕對布局)

在此布局中的子元素的android:layout_x和android:layout_y屬性將生效,用於描述該子元素的坐標位置。屏幕左上角為坐標原點

(0,0),第一個0代表橫坐標,向右移動此值增大,第二個0代表縱坐標,向下移動,此值增大。在此布局中的子元素可以相互重

疊。在實際開發中,通常不采用此布局格式,因為它的界面代碼過於剛性,以至於有可能不能很好的適配各種終端。

margin系列 外邊距

padding系列 內邊距

Android:layout_margin就是設置view控件的上下左右邊框的額外空間

android:padding是設置控件裡面內容相對view控件的邊框的距離

在LinearLayout、RelativeLayout、TableLayout中,這2個屬性都是設置都是有效的

在FrameLayout中,android:layout_margin是無效的,因為FrameLayout裡面的元素都是從左上角開始繪制的

在AbsoluteLayout中,沒有android:layout_margin屬性

 

這裡寫圖片描述
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved