您好,登錄后才能下訂單哦!
眾所周知,一個應用程序的良好與否,很大程度上取決于它的用戶界面。這就像是一個人給人的第一感覺也是從臉開始的一樣。一個應用程序首先展示給客戶的就是它的界面,通途的說,也就是軟件的臉面。只有良好的用戶交互界面,才能在第一時間抓住客戶心理,取得優勢。那么今天我就來給大家說一下在Android程序的開發過程中,對于Android應用程序的一些常見的布局以及個人的一些看法,希望對大家有所幫助。
在Android4.0之前一共有5種關于Android的布局,分別是:LinearLayout(線性布局),RelativeLayout(相對布局),FrameLayout(框架布局),AbsoluteLayout(絕對布局),TableLayout(表格布局)。在Android4.0之后又新增了一種布局,GirdLayout(網格布局)。其中常用的布局有LinearLayout(線性布局),RelativeLayout(相對布局)以及最新出的GirdLayout(網格布局)。
首先介紹一下LinearLayout布局,也就是我們平時說的線性布局。顧名思義,所謂線性布局也就是在搭建Android界面時,界面元素的整體排列,呈水平排列(horizntal)或者是豎直排列(vertical)。在線性布局布局中,每一行或每一列只能放單獨一個控件。線性布局不會換行。當控件排列到窗體邊緣,后面的控件就被隱藏,而不會顯示出來。線性布局通過orientation屬性來控制元素的排列方式即它的兩個值:horizntal,vertical。而且這個屬性在布局中一般都是要加進去的,告訴系統你按照什么方式排列。如果不寫的話,第一行代碼可能會整體報錯。
LinearLayout的常見的一些屬性:
1.android:orientation 定義布局內控件或組件的排列方式
可選項:vertical 、horizontal
2.android:layout_width 定義控件的寬度
可選項:fill_parent/ match_parent/ wrap_content/絕對數值
備注:fill_parent/ match_parent的效果完全一致,都是填充整個父控件。但是自2.2版本開始推薦使用match_parent 。wrap_content指的是該控件的寬度正好包裹內容物。
3.android:layout_height 定義控件的高度
可選項:fill_parent/ match_parent/ wrap_content/絕對數值
備注:fill_parent/ match_parent的效果完全一致,都是高度填充整個父控件。wrap_content指的是該控件的高度正好包裹內容物。
4.android:id 設置控件的id。這樣就可以在R.java中自動生成相應的值,在程序中通過findViewById就可以調用。
設置id的格式為:android:id= "@+id/id的名字"
5.android:background 設置控件的背景顏色或背景圖片
例如:android:background="#ffffff"
android:background="@drawable/圖片名稱"
LinearLayout特有的屬性有以下幾種:
1、android:orientation 布局管理器內組件的排列方式
2、android:gravity 設置布局管理器內組件的對齊方式
3、android:weightSum 為該布局下的元素設置權重
LinearLayout 子元素的特有屬性:
1、android:layout_weight 子元素在 LinearLayout 中所占的權重
2、android:layout_gravity 子元素在 LinearLayout 中的對齊方式(只在LinearLayout和FrameLayout中有效,LinearLayut中只有一個方向起作用,FrameLayou都有效)
接下來再說一下RelativeLayout,相對布局。相對布局在平時的開發中也經常用到。簡單來說就是一個界面元素相對于另一個元素的位置。一般需要在定義一個元素時附上該元素的ID,然后另一個元素就可以相對于這個元素進行布局了。
RelativeLayout特有屬性:
1、android:gravity 設置布局容器內子控件的對齊方式
2、android:ignoreGravity 設置布局管理器內哪個控件不受gravity屬性的影響
RelativeLayout子元素的特有屬性:LayoutParams
A、第一組:指兄弟控件之間的相對位置。該組屬性的值是另一個控件的id。
layout_toRightOf 該控件在哪個控件的右側
layout_toLeftOf 該控件在哪個控件的左側
layout_above 該控件在哪個控件的上側
layout_below 該控件在哪個控件的下側
B、第二組:指兄弟控件之間的對齊關系。該組屬性的值是另一個控件的id。
layout_alignRight 該控件與哪個控件的右對齊
layout_alignLeft 該控件與哪個控件的左對齊
layout_alignTop 該控件與哪個控件的頂對齊
layout_alignBottom 該控件與哪個控件的底對齊
layout_alignStart 該控件與哪個控件的起始端對齊(4.2新出的)
layout_alignEnd 該控件與哪個控件的末端對齊(4.2新出的)
C、第三組:指控件與父布局之間的對齊關系。該組屬性的值是true或者false。
layout_alignParentRight 該控件與父布局控件的右對齊嗎?
layout_alignParentLeft 該控件與父布局控件的左對齊嗎?
layout_alignParentTop 該控件與父布局控件的頂端對齊嗎?
layout_alignParentBottom 該控件與父布局控件的底部對齊嗎?
layout_centerInParent 該控件位于父布局控件的中心位置嗎?
layout_centerVertical 該控件位于父布局控件的垂直中心位置嗎?
layout_centerHorizontal 該控件位于父布局控件的水平中心位置嗎?
現在市面上大部分的Android界面通過以上兩種布局方式結合使用都可以達到美觀大氣的效果。接下來再說一下關于Android4.0以后新出的一種布局方式,叫做網格布局(GridLayout)。這類布局方式最典型的一個案例就是我們手機上都帶有的計算器界面。當然使用LinearLayout和RelativeLayout也能完成,但是顯然使用GridLayout會變得更加容易一點。使用GridLayout需要注意的一點是需要在布局界面的時候首先定義網格的行列數,通常使用的是rowCount和columnCount兩個屬性來定義網格的行數和列數。再者就是個別網格需要使用: layout_rowSpan 和layout_columnSpan來實現網格的跨行和跨列操作,通俗的說就是行和列的合并。
GridLayout子元素的屬性:
1、android:layout_column
屬性說明: 顯示該控件的列。例如,android:layout_column="0",表示在第1列顯示該控件;android:layout_column="1",表示在第2列顯示該控件。
2、android:layout_row
屬性說明: 該控件所在行。例如,android:layout_row="0",表示在第1行顯示該控件;android:layout_row="1",表示在第2行顯示該控件。它和 android:layout_column類似。
3、android:layout_columnSpan
屬性說明: 列合并。即該控件所占的列數。例如,android:layout_columnSpan="2",表示該控件占2列。
4、android:layout_rowSpan
屬性說明: 行合并。即該控件所占的行數。例如,android:layout_rowSpan="2",表示該控件占2行。
5、android:layout_gravity
屬性說明:該控件的布局方式。選項值:
top -- 控件置于容器頂部,不改變控件的大小。
bottom -- 控件置于容器底部,不改變控件的大小。
left -- 控件置于容器左邊,不改變控件的大小。
right -- 控件置于容器右邊,不改變控件的大小。
center_vertical -- 控件置于容器豎直方向中間,不改變控件的大小。
fill_vertical -- 如果需要,則往豎直方向延伸該控件。
center_horizontal -- 控件置于容器水平方向中間,不改變控件的大小。
fill_horizontal -- 如果需要,則往水平方向延伸該控件。
center -- 控件置于容器中間,不改變控件的大小。
fill -- 如果需要,則往水平、豎直方向延伸該控件。
clip_vertical -- 垂直剪切,剪切的方向基于該控件的top/bottom布局屬性。若該控件的gravity是豎直的:若它的gravity是top的話,則剪切該控件的底部;若該控件的gravity是bottom的,則剪切該控件的頂部。
clip_horizontal -- 水平剪切,剪切的方向基于該控件的left/right布局屬性。若該控件的gravity是水平的:若它的gravity是left的話,則剪切該控件的右邊;若該控件的gravity是 right的,則剪切該控件的左邊。
start -- 控件置于容器的起始處,不改變控件的大小。
end -- 控件置于容器的結束處,不改變控件的大小。
以上三種布局方式在實際應用開發中是比較常見的,另外的布局方式如FrameLayout(框架布局),AbsoluteLayout(絕對布局),TableLayout(表格布局)相對來說就要使用的少一些,在這里就不一一詳述,有興趣的同學可以在網上搜一下其他的一些布局方式,為Android的學習打下一個良好的基礎。以上總結都是我在平時學習中一點一點總結的,可能會有問題,還希望有志趣相投的同學指正,共同進步!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。