Android之旅第二站 介面(布局)

2021-07-26 06:53:55 字數 2558 閱讀 1551

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

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

xml屬性:android:shrinkcolumns

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

xml屬性:android:stretchcolimns

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

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屬性

安卓之旅第二站 常用UI介面設計

線性布局分為兩種形式,水平線性布局和垂直線性布局 android orientation horizontal 使控制項水平排列 android orientation vertical 使控制項垂直排列 子類控制項相對子類控制項 值是另外乙個控制項的id android layout above ...

Android開發第二站UI布局(1)

線性布局分為兩種形式,水平線性布局和垂直線性布局 android orientation horizontal 使控制項水平排列 android orientation vertical 使控制項垂直排列 子類控制項相對子類控制項 值是另外乙個控制項的id android layout above ...

Web刷題之旅(二) BUUCTF 站

網頁讓我們 try to find out source file 御劍和uniscan掃不出後台目錄,無奈只好拿出掃到讓運營兩行淚的dirsearch 原來是php弱型別轉換,就是說int型別傳入1a,遇到字元就會停止讀取,相當於傳入的是1key和str比較,str必然是要型別轉換成int,只取1...