第四講常見布局方式_第1頁
第四講常見布局方式_第2頁
第四講常見布局方式_第3頁
第四講常見布局方式_第4頁
第四講常見布局方式_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、常見布局方式常見布局方式回顧上一節(jié)我們學(xué)習(xí)了以下幾個內(nèi)容:u活動生命周期,活動定義及使用方法u意圖的定義及使用u服務(wù)生命周期,服務(wù)的使用u內(nèi)容提供者的基本含義引入每個活動都有一個界面,手機(jī)屏幕的不同,界面布局不同。設(shè)計(jì)時,該如何考慮界面布局呢?本章主要知識View類及ViewGroup類幀布局(FrameLayout)線性布局(LinearLayout)表格布局(TableLayout)相對布局(RelativeLayout)列表布局(ListView)自定義視圖事件控制方法VIEW類及VIEWGROUP類View類是屏幕元素的基類。所有界面元素都是其子類。View類的屬性如下:屬性含義and

2、roid:background設(shè)置背景,可以是drawable,也可以是色彩android:clickable是否響應(yīng)單擊事件android:visible控制View的可見性android:focusable控件View是否可以獲取焦點(diǎn)android:idView標(biāo)識符,可通過findViewById方法獲取VIEW類及VIEWGROUP類ViewGroup類是View的子類是布局對象的父類布局常以XML的形式出現(xiàn)XML布局文件定義在res/layout文件夾下布局類之間的關(guān)系如下:子類繼承父類屬性ViewViewGroupAbsoluteLayoutLinearLayoutRalative

3、LayoutFrameLayoutTableLayout幀布局(FRAMELAYOUT)分層顯示,每層一個組件最后放入的組件在頂層默認(rèn)組件左上角對齊(如右上圖)如果想更改組件對齊方式,每個子組件內(nèi)添加layout_gravity屬性(右下圖的子組件屬性為center) 幀布局(FRAMELAYOUT)XML文檔結(jié)構(gòu)如下:XML編碼的固定格式 幀布局(FRAMELAYOUT)XML文檔結(jié)構(gòu)如下:幀布局開始 幀布局(FRAMELAYOUT)XML文檔結(jié)構(gòu)如下:XML命名空間 幀布局(FRAMELAYOUT)XML文檔結(jié)構(gòu)如下:定義該布局大小 match_parent與父控件相同wrap_conte

4、nt與內(nèi)容大小相同可以給定具體的數(shù)值,單位最好為dp 幀布局(FRAMELAYOUT)XML文檔結(jié)構(gòu)如下:Android支持的各種組件,在下一章將詳細(xì)闡述 幀布局(FRAMELAYOUT)XML文檔結(jié)構(gòu)如下:幀布局的結(jié)束標(biāo)記幀布局(FRAMELAYOUT)新建一個項(xiàng)目在res/layout文件夾中刪除原有的布局文件在該文件夾下新建一個andriod XML layout 文件例子幀布局(FRAMELAYOUT)向布局中拖拽3個文本控件改變文本控件屬性,具體代碼如右圖例子LinearLayoutLinearLayout(線性布局)(線性布局) l是最常用的布局方式。l以水平或垂直的方式排列子對象

5、。l一個方向只能有一個對象。l可以嵌套:一個線性布局內(nèi)還可以定義線性布局。LinearLayoutLinearLayout 常用屬性(布局參數(shù)):常用屬性(布局參數(shù)):landriod:orientation:設(shè)置排列方向landroid:layout_width:設(shè)置寬landroid:layout_height:設(shè)置高landroid:layout_weight:設(shè)置控件的重要程度。默認(rèn)為零,根據(jù)weight值分配控件暫用屏幕大小。landriod:gravity:設(shè)置內(nèi)部元素的對齊方式等。垂直排列垂直排列填充整個屏幕寬度填充整個屏幕寬度按控件大小填充按控件大小填充線性布局(LINEARL

6、AYOUT)線性布局(LINEARLAYOUT)例子線性布局嵌套線性布局1嵌套線性布局2垂直布局水平布局此視圖占去屏幕的1/(1+3)此按鈕占去子布局的2/(2+3)想一想:如果要想讓嵌套的兩個線性布局,均分屏幕,應(yīng)該怎么設(shè)置?表格布局(TABLELAYOUT)以多行多列的方式顯示子對象。每一行為一個TableRow 。每一行可以擁有0個或多個的單元格(cell)。每個單元格內(nèi)是一個View對象。TableLayout 容器不會顯示行 、列 或單元格的邊框線。列的屬性uShrinkable:設(shè)置列的寬度是否可收縮,收縮指表格能夠適應(yīng)其父容器的大小。uStretchable:設(shè)置列的寬度是否可拉

7、伸,拉伸指可填滿表格中空余的空間。uCollapsed:設(shè)置列是否被隱藏。表格布局(TABLELAYOUT)XML文檔格式表格布局行列,每個組件為一列想一想: 一行里能放多列嗎?動手驗(yàn)證: 多列組件,超過屏幕寬度怎么辦?超出的還顯示嗎?實(shí)驗(yàn)課上,請你自己實(shí)驗(yàn)驗(yàn)證一下相對布局(RELATIVELAYOUT)相對于其他對象的位置顯示子對象,常用于表單中。是設(shè)計(jì)UI的有力工具,通常用于比較復(fù)雜的布局。相對布局(RELATIVELAYOUT)XML屬性如下:屬性含義layout_centerHorizontal 取值true時,水平居中l(wèi)ayout_centerInParent取值true時,居中顯示

8、layout_alignParentLeft取值true時,水平居左layout_toRightOfid,在id組件的右側(cè)layout_alignTop取值id,上邊界與id組件上邊界對齊layout_marginBottomint值,單位dp,底端間距列表布局(LISTVIEW)ListView可以顯示多條內(nèi)容,當(dāng)內(nèi)容超出屏幕高度時,可以上下滾動顯示ListView也繼承View類列表布局(LISTVIEW)listView要顯示數(shù)據(jù),數(shù)據(jù)一般有以下幾個來源:自定義的array,需要預(yù)先定義array,在listview中使用android:entries=array/xxx“數(shù)據(jù)庫,需要先

9、查詢數(shù)據(jù)庫,再操作在類中自定義的數(shù)組,直接使用adapter即可列表布局(LISTVIEW)自定義的array列表布局(LISTVIEW)要顯示數(shù)據(jù)庫和自定義的數(shù)組時,一般需要使用適配器(Adapter)。使用listview.setAdapter(ListAdapter)方法來加載數(shù)據(jù)資源。listView 中常用的適配器有ArrayAdapter,SimpleAdapter和SimpleCursorAdapter等。列表布局(LISTVIEW)類中自定義數(shù)據(jù),在listView中顯示想一想: 在活動中把視圖加載的方法是什么呢?setContentView(R.layout.main);se

10、tContentView(view);上一個例子使用的是那種方法?為什么?自定義視圖自定義視圖的三種方法在主Activity中直接重寫View類單獨(dú)定義View類,在主Activity中引用單獨(dú)定義View類,在布局文件中引用自定義視圖在主Activity中直接重寫View類,對View類(包含View類的子類)進(jìn)行實(shí)例化即可。例子1自定義視圖在主Activity中直接重寫View類,對View類(包含View類的子類)進(jìn)行實(shí)例化即可。例子2自定義視圖在主Activity中直接重寫View類,對View類(包含View類的子類)進(jìn)行實(shí)例化即可。例子3自定義視圖單獨(dú)定義View類,在主Activity中引用public class My2D extends Activity public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(new

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論