Android中常用布局簡介

今天復(fù)習(xí)Android系統(tǒng)中為我們提供的五大布局:LinearLayout(線性布局)忿偷、RelativeLayout(相對(duì)布局)、FrameLayout(幀布局)绝葡、AbsoluteLayout(絕對(duì)布局)整陌、TablelLayout(表格布局)其中最常用的的是LinearLayout、TablelLayout和RelativeLayout结洼。這些布局都可以嵌套使用。

一详恼、布局介紹

布局 介紹/特點(diǎn) 應(yīng)用場景
LinerLayout(線性布局) 控件排列方式 = 線性的垂直/水平 布局內(nèi)控件按照線性垂直/水平排列
RelativeLayout (相對(duì)布局) 根據(jù)參照物(某個(gè)控件id)來確定控件的位置 控件之間存在位置上的聯(lián)系
FrameLayout(幀布局) 放入的控件都被放在左上角且后加入的控件會(huì)重疊覆蓋在之前加入的控件上面 控件相互疊加
TableLayout(表格布局) 通過表格形式布局控件位置 控件之間存在固定的位置關(guān)系
AbsoluteLayout(絕對(duì)布局) 采用坐標(biāo)的方式定位控件补君,左上角時(shí)(0,0)往右X軸遞增往下Y軸遞增 已過時(shí)

二昧互、布局屬性

1挽铁、公有屬性

即各個(gè)布局都存在的屬性

屬性 介紹 使用
layout_width 、layout_height 設(shè)置布局的寬/高 android:layout_width="wrap_content"http://所需的最小尺寸 android:layout_height="match_parent"http://充滿父布局 android:layout_width="65dp"http://固定寬高
layout_margin+方位 設(shè)置控件邊緣相對(duì)于父控件的邊距 layout_margin="10dp"http://設(shè)置四面邊距l(xiāng)ayout_marginTop="10dp"http://設(shè)置上邊距l(xiāng)ayout_marginBottom="10dp"http://設(shè)置下邊距l(xiāng)ayout_marginLeft="10dp"http://設(shè)置左邊距l(xiāng)ayout_marginRight="10dp"http://設(shè)置右邊距
padding +方位 設(shè)置控件內(nèi)容的邊緣相對(duì)于控件的邊距 layout_padding="10dp"http://設(shè)置四面邊距l(xiāng)ayout_paddingTop="10dp"http://設(shè)置上邊距l(xiāng)ayout_paddingBottom="10dp"http://設(shè)置下邊距l(xiāng)ayout_paddingLeft="10dp"http://設(shè)置左邊距l(xiāng)ayout_paddingRight="10dp"http://設(shè)置右邊距
layout_gravity 控件相對(duì)父控件的位置 android:layout_gravity="center"http://居中android:layout_gravity="center_horizontal"http://水平居中android:layout_gravity="center_vertival"http://垂直居中
gravity 控件內(nèi)容相對(duì)控件的位置 android:layout_gravity="center"http://居中android:layout_gravity="center_horizontal"http://水平居中android:layout_gravity="center_vertival"http://垂直居中
2敞掘、特有屬性
布局 特有屬性 用法
LinerLayout(線性布局) orientation(設(shè)置控件的排列方式)layout_weight(根據(jù)設(shè)置的權(quán)重叽掘,將布局控件按比例分配,主要設(shè)置在布局內(nèi)的控件中) android:orientation="horizontal"http://水平android:orientation="vertical"http://垂直 android:layout_weight="1.0"http://設(shè)置權(quán)重
RelativeLayout(相對(duì)布局) layout_alignParentXXX(當(dāng)前控件對(duì)齊父控件的X方位) android:layout_alignParentTop="true"http://當(dāng)前控件頂端對(duì)齊父控件頂端 android:layout_alignParentBottom="true"http://當(dāng)前控件底端對(duì)齊父控件底端android:layout_alignParentLeft="true"http://當(dāng)前控件左端對(duì)齊父控件左端android:layout_alignParentRight="true"http://當(dāng)前控件右端對(duì)齊父控件右端android:layout_centerInParent="true"http://當(dāng)前控件位于父控件正居中的位置android:layout_centerVertival="true"http://當(dāng)前控件位于父控件垂直居中的位置android:layout_centerHorizontal="true"http://當(dāng)前控件位于父控件水平居中的位置
RelativeLayout(相對(duì)布局) layout_X(當(dāng)前控件位于某個(gè)控件的X方位) android:layout_above="@id/text"http://當(dāng)前控件位于text控件的上方 android:layout_below="@id/text"http://當(dāng)前控件位于text控件的下方 android:layout_toLeftOf="@id/text"http://當(dāng)前控件位于text控件的左方 android:layout_toRightOf="@id/text"http://當(dāng)前控件位于text控件的右方 android:layout_alignTop="@id/text"http://當(dāng)前控件的頂部 對(duì)齊 text控件的頂部 android:layout_alignRight(End)="@id/text"http://當(dāng)前控件的右部 對(duì)齊 text控件的右部 android:layout_alignBottom="@id/text"http://當(dāng)前控件的底部 對(duì)齊 text控件的底部 android:layout_alignLeft(Start)="@id/text"http://當(dāng)前控件的左部 對(duì)齊 text控件的左部
AbsoluteLayout(絕對(duì)布局) layout_x(指定控件的x坐標(biāo))<p>layout_y(指定控件的Y坐標(biāo)) android:layout_x="50dp" android:layout_y="50dp"
TableLayout(表格布局) TableLayout的行TableRow = 一個(gè)水平排列的線性布局繼承自線性布局故具備線性布局的全部屬性
FrameLayout 只具備基礎(chǔ)屬性

5個(gè)布局元素可相互嵌套使用玖雁,從而實(shí)現(xiàn)各種不同的效果

三更扁、選擇器(selector)

1.作用

通過設(shè)置選擇器(selector)可使控件 在不同操作下(默認(rèn)、點(diǎn)擊等) 顯示不同樣式

通過 xml編寫 = selector.xml
2.屬性
XML屬性 說明
android:drawable 放一個(gè)drawable資源
android:state_pressed 按下狀態(tài)赫冬,如一個(gè)按鈕觸摸或者點(diǎn)擊浓镜。
android:state_focused 取得焦點(diǎn)狀態(tài),比如用戶選擇了一個(gè)文本框劲厌。android:state_hovered 光標(biāo)懸停狀態(tài)膛薛,通常與focused state相同,它是4.0的新特性
android:state_selected 選中狀態(tài)
android:state_enabled 能夠接受觸摸或者點(diǎn)擊事件
android:state_checked 被checked了补鼻,如:一個(gè)RadioButton可以被check了哄啄。
android:state_enabled 能夠接受觸摸或者點(diǎn)擊事件

注:上述所有屬性的取值 : boolean屬性 = true、false

3.實(shí)例說明

在drawable添加 selector.xml 資源文件
button_selector.xml:

<?xml version="1.0" encoding="UTF-8"?>
< selector xmlns:android="http://schemas.android.com/apk/res/android">

 < !-- 指定按鈕按下時(shí)的圖片 -->
 <item android:state_pressed="true"  
       android:drawable="@drawable/start_down"
 />

 < !-- 指定按鈕松開時(shí)的圖片 --> 
 <item android:state_pressed="false"
       android:drawable="@drawable/start"
 />

< /selector>

在布局文件main.xml中控件的屬性設(shè)置:

<Button
  android:id="@+id/startButton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/button_selector" 
/>

四风范、布局形狀(Shape)

  • 作用:設(shè)置布局的顏色咨跌、邊框線

  • 使用:通過 xml編寫 = shape.xml

  • 具體使用

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

//默認(rèn)顏色
<solid android:color="#876543"/>
//哪個(gè)方向有邊框線
  <padding
        android:bottom="0dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp" />
     //邊框線顏色、大小
    <stroke
        android:width="1dp"
        android:color="#000000" />

在布局文件main.xml中控件的屬性設(shè)置:

<Button
  android:id="@+id/startButton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:background="@drawable/layout_shape"/>

寫在最后: 本系列的文章旨在學(xué)習(xí)過程中的總結(jié)硼婿,如果對(duì)你也有幫助锌半,榮幸之至。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末寇漫,一起剝皮案震驚了整個(gè)濱河市拳喻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌猪腕,老刑警劉巖冗澈,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異陋葡,居然都是意外死亡亚亲,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門腐缤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捌归,“玉大人,你說我怎么就攤上這事岭粤∠鳎” “怎么了?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵剃浇,是天一觀的道長巾兆。 經(jīng)常有香客問我猎物,道長,這世上最難降的妖魔是什么角塑? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任蔫磨,我火速辦了婚禮,結(jié)果婚禮上圃伶,老公的妹妹穿的比我還像新娘堤如。我一直安慰自己,他們只是感情好窒朋,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布搀罢。 她就那樣靜靜地躺著,像睡著了一般侥猩。 火紅的嫁衣襯著肌膚如雪榔至。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天拭宁,我揣著相機(jī)與錄音洛退,去河邊找鬼。 笑死杰标,一個(gè)胖子當(dāng)著我的面吹牛兵怯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腔剂,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼媒区,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了掸犬?” 一聲冷哼從身側(cè)響起袜漩,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎湾碎,沒想到半個(gè)月后宙攻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡介褥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年座掘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柔滔。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡溢陪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睛廊,到底是詐尸還是另有隱情形真,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布超全,位于F島的核電站咆霜,受9級(jí)特大地震影響邓馒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜裕便,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一绒净、第九天 我趴在偏房一處隱蔽的房頂上張望见咒。 院中可真熱鬧偿衰,春花似錦、人聲如沸改览。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宝当。三九已至视事,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庆揩,已是汗流浹背俐东。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留订晌,地道東北人虏辫。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像锈拨,于是被迫代替她去往敵國和親砌庄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容