一、View視圖
所有的UI元素都是通過View與ViewGroup構建的,對於一個Android應用的用戶界面來說,ViewGroup作爲容器盛裝界面中的控件,它可以包含普通的View控件,也可以包含ViewGroup。
二、界面佈局編寫方式
有兩種界面佈局方式,第一種是在XML文件中編寫佈局,最常用的也是這種;第二種是在java代碼中編寫佈局,如圖:
1、在XML文件中編寫佈局
UI界面如圖:
2、在java代碼中編寫佈局
UI界面如圖:
三、常見界面佈局
1、常用佈局及特點:
2、佈局的通用屬性
Android系統提供的五種常用佈局直接或者間接繼承自ViewGroup,因此它們也支持在ViewGroup中定義的屬性,這些屬性可以看作是佈局的通用屬性。
3、RelativeLayout相對佈局
(1)概述
相對佈局(RelativeLayout)是通過相對定位的方式指定子控件位置,即以其它控件或父容器爲參照物,擺放控件位置。
(2)定義格式
(3)相對佈局—控件位置屬性
(4)UI界面
4、LinearLayout線性佈局
(1)概述
線性佈局(LinearLayout)主要以水平或垂直方式來顯示界面中的控件。當控件水平排列時,顯示順序依次爲從左到右,當控件垂直排列時,顯示順序依次爲從上到下。
(2)orientation屬性
orientation屬性控制控件排列方向,包含兩個屬性值:vertical(垂直)、horizontal(水平);
weight屬性表示權重。
比如一共有三個按鈕水平排列,分別爲按鈕1、按鈕2、按鈕3,那麼orientation屬性爲horizontal,按鈕1的weight爲1,按鈕2的weight爲1,按鈕3的weight爲2。那麼它們的寬度將按照比重來,按鈕1佔1/4,按鈕2佔1/4,按鈕3佔1/2也就是一半,如圖:
(3)線性佈局—注意事項
5、TableLayout表格佈局
(1)概述
採用行、列的形式來管理控件,它不需要明確聲明包含多少行、多少列,而是通過在TableLayout佈局中添加TableRow佈局來控制表格的行數,通過在TableRow佈局中添加控件來控制表格的列數。
(2)代碼樣式
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
屬性 = ”屬性值”>
<TableRow>
UI控件
</TableRow>
......
</TableLayout>
(3)佈局屬性和控件屬性
(4)UI界面
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="2">//第3列可被拉伸
<TableRow>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"//設置控件所在列
android:text="按鈕1" />
......
</TableRow>
</TableLayout>
6、FrameLayout幀佈局
(1)概述
幀佈局(FrameLayout)用於在屏幕上創建一塊空白區域,添加到該區域中的每個子控件佔一幀,這些幀會一個一個疊加在一起,後加入的控件會疊加在上一個控件上層
所有控件都默認顯示在屏幕左上角。
(2)定義格式
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
屬性 ="屬性值">
</FrameLayout>
(3)UI界面
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:foreground="@mipmap/ic_launcher"//設置幀佈局容器的前景圖像(始終在所有子控件之上)
android:foregroundGravity="left" >//設置前景圖像顯示位置
</FrameLayout>
7、ConstraintLayout約束佈局
(1)概述
ConstraintLayout是Android Studio2.2新添加的佈局。
它適合使用可視化的方式編寫界面佈局——當然,可視化操作的背後仍然是使用XML代碼實現的,只不過這些代碼是Android Studio根據我們的操作自動生成的。包含相對定位、居中定位和傾向、Chain三項。
(2)相對定位
相對定位是在ConstraintLayout中創建佈局的基本構建方法之一。相對定位即一個控件相對於另一個控件進行定位。
ConstraintLayout佈局中的控件可以在橫向和縱向上以添加約束關係的方式進行相對定位,其中,橫向邊包括Left、Start、Right、End,縱向邊包括Top、Bottom、Baseline(文本底部的基準線)。
(3)相對定位關係的屬性
(4)居中定位和傾向
(5)Chain
四、總結:
博客內容主要針對Android界面佈局的相關知識進行講解。通過本次的學習,我們希望讀者能夠掌握View和ViewGroup的功能、掌握不同界面佈局以及佈局中控件屬性的使用,因爲在Android應用中,所有功能大部分都體現在界面上,界面的美觀會給用戶一個友好的體驗。
有些東西,並不是越濃越好,要恰到好處。深深的話我們淺淺地說,長長的路我們慢慢地走。