Android開發教程 — 布局(線性布局 Linear Layout )(相對布局 Relative Layout)

來源:互聯網
上載者:User

Hi,大家好

      上次發布博文到現在已經很長時間了,年底項目非常的忙,一是抽不開時間來更新,二是可能有那麼點懶,不管什麼原因吧,對大家說聲抱歉,後續會持續更新,謝謝大家的支援!

      照例,放鬆下:有一個小夥子在一個辦公大樓的門口抽著煙,一個婦女路過他身邊,並對他說,“你知道不知道這個東西會危害你的健康?我是說,你有沒有注意到香煙盒上 的那個警告(Warning)?”

小夥子說,“沒事兒,我是一個程式員”。

那婦女說,“這又怎樣?”

程式員說,“我們從來不關心Warning,只關心Error”

     今天,主要來說說Android中的布局,肯定會有人說,現在網路上一搜一大把這樣的文章,沒意思,確實,畢竟那麼多人都在編寫發表博文,但是好像沒有多少文章會以一個例子來講解這些布局知識點,這篇博文主要還是講解一些基礎的知識點,下一篇主要用一個執行個體來總結布局知識,下邊是目標效果,會在下篇博文中討論,以方便日後的翻閱。高手就跳過吧!

   

    Android 中有五大布局,分別是

   線性布局 - Linear Layout

   相對布局 - Relative Layout

   表格版面配置 - Table Layout

   相對布局 - AbsoluteLayout

   架構布局 – FrameLayout

   我在開發中,常用線性布局和相對布局,在此主要對這兩種布局進行講解。

   線性布局主要又分為垂直線性布局和水平線性布局,主要使用

android:orientation=”vertical”和android:orientation=”horizontal ”,效果分別如下:

 

 

 

•發現如果螢幕寬度或高度不夠時,會有變形和顯示不全的效果,那麼如何避免這種情況呢?

•android:layout_weight=“1”

•這個屬性比較重要:每個控制項的預設值為0 ,意思是控制項是根據自身的寬高來劃分空間,如果控制項過多,超出一屏時,就會被遮擋住。

•如果為每個控制項都定義這個屬性,並且值都為1,那麼就會對這些控制項的父元素的可用空間進行劃分。

•例:如果有5個控制項,每個Weight=1,那麼意味著父元素的空間將被劃分成5份,每一個控制項將佔據1/5,Weight值越高,那麼它所佔的比例也就越大。

一般情況下,在做UI時,都會採用嵌套的方式來實現複雜的布局,例如:垂直線性套水平線性或者垂直線性套相對布局等,都需要各位多去動手實踐。

   相對布局:

 

•概念

•允許子項目指定他們相對於其它元素或父元素的位置(通過ID 指定)。

•如果布局檔案中有多層嵌套LinearLayout時,可以考慮使用相對布局

•需要用到的屬性

•android:layout_marginTop=“25dip” //頂部距離

android:gravity=“left” //控制項中文本位置

android:layout_marginLeft="15dip //距離左邊距

// 相對於給定ID控制項

android:layout_above 將該控制項的底部置於給定ID的控制項之上(將該控制項置於指定控制項的上面);

android:layout_below 將該控制項的頂部置於給定ID的控制項之下(將該控制項置於指定控制項的下面);

android:layout_toLeftOf  將該控制項的右邊緣與給定ID的控制項左邊緣對齊;

android:layout_toRightOf將該控制項的左邊緣與給定ID的控制項右邊緣對齊;

 

 

android:layout_alignBaseline將該控制項的baseline與給定ID的baseline對齊;

android:layout_alignTop 將該控制項的頂部邊緣與給定ID的頂部邊緣對齊;

android:layout_alignBottom將該控制項的底部邊緣與給定ID的底部邊緣對齊;

android:layout_alignLeft       將該控制項的左邊緣與給定ID的左邊緣對齊;

android:layout_alignRight     將該控制項的右邊緣與給定ID的右邊緣對齊;

// 相對於父組件

android:layout_alignParentTop      如果為true,將該控制項的頂部與其父控制項的頂部對齊;

android:layout_alignParentBottom 如果為true,將該控制項的底部與其父控制項的底部對齊;

android:layout_alignParentLeft      如果為true,將該控制項的左部與其父控制項的左部對齊;

android:layout_alignParentRight    如果為true,將該控制項的右部與其父控制項的右部對齊;

•// 置中
android:layout_centerHorizontal 如果為true,將該控制項的置於水平置中;
android:layout_centerVertical     如果為true,將該控制項的置於垂直置中;
android:layout_centerInParent   如果為true,將該控制項的置於父控制項的中央;
// 指定移動像素
android:layout_marginTop      上位移的值;
android:layout_marginBottom 下位移的值;
android:layout_marginLeft 左位移的值;
android:layout_marginRight 右位移的值;

以下是一個簡單的登入框效果

好了,剩下的三種布局在開發中我幾乎沒咋用過,個人感覺這兩種布局就可以實現複雜的頁面了。我總結了Android常用的布局-屬性的協助文檔和這節的原始碼都上傳到了天聖達公司的網站,大家可以去下載。地址 http://www.tsdapp.com/android.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.