UI的描述 對於 應用程式中,所有用戶界面元素都是由 和`ViewGroup View ViewGroup View ViewGroup`對象的佈局容器! 為我們提供了 和`ViewGroup`的兩個子類的集合,提供常用的一些輸入控制項(比如按鈕,圖片和文本域等)和各種各樣的佈局模式(比如線程佈局,相 ...
UI的描述
對於Android
應用程式中,所有用戶界面元素都是由View
和ViewGroup
對象構建的。View
是繪製在屏幕上能與用戶進行交互的一個對象。而對於ViewGroup
來說,則是一個用於存放其他View
和ViewGroup
對象的佈局容器!
Android
為我們提供了View
和ViewGroup
的兩個子類的集合,提供常用的一些輸入控制項(比如按鈕,圖片和文本域等)和各種各樣的佈局模式(比如線程佈局,相對佈局,絕對佈局,幀佈局,表格佈局等)。
用戶界面佈局
在你APP
軟體上的,用戶界面上顯示的每一個組件都是使用層次結構View
和ViewGroup
對象來構成的,比如,每個ViewGroup
都是不可見容器,每個ViewGroup
視圖組用於組織子視圖View
的容器,而它的子視圖View
可能是輸入一些控制項或者在某塊區域的小部件UI
。如果你有了層次結構樹,你可以根據自己的需要,設計出一些佈局,但要儘量簡單,因為越簡單的層次結構最適合性能。
要聲明佈局,可以在代碼中實例化對象並構建,最簡單的方法也可以使用xml
文件。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
在Android
中提供了幾個常用佈局:
LinearLayout
線性佈局RelativeLayout
相對佈局FrameLayout
幀佈局AbsoluteLayout
絕對佈局TableLayout
表格佈局GridLayout
網格佈局
描述一下幾個重要的
線性佈局:
指子控制項以水平或垂直方式排列。
相對佈局:
指子控制項以控制項之間的相對位置或子控制項相對於父容器的位置排列。
幀佈局:
指所有子控制項均放在左上角且後面元素直接覆蓋在前面元素之上。
絕對佈局:
指子控制項通過絕對定位x,y位置來決定其位置擺放。
表格佈局:
指以行列的形式放置子控制項,每一行是一個TableRow對象或者View對象。
LinearLayout線性佈局
常用屬性:
id:
為該組件添加一個資源id
orientation:
佈局中的排列方式,有兩種方式:
horizontal
水平
vertical
豎直layout_width:
佈局的寬度,用wrap_content
表示組件的實際寬度,match_parent
表示填充父容器layout_height:
佈局的長度,用wrap_content
表示組件的實際長度,match_parent
表示填充父容器gravity:
控制組件所包含的子元素的對齊方式layout_gravity:
控制該組件在父容器里的對齊方式background:
為該組件添加一個背景圖片
LinearLayout
是一個視圖組,可以在一個方向垂直或者水平分佈所有子項,用android:orientation
屬性。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="輸入賬號" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="輸入密碼" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登錄" />
</LinearLayout>
RelativeLayout
相對佈局
RelativeLayout
是一個相對佈局的視圖組,用來顯示相對位置的子視圖類,在預設情況下,所有子視圖對會分佈在左上角。
layout_alignParentTop:
為true
,視圖的上邊界與父級的上邊界對齊layout_centerVertical:
為true
,將子類放置在父類中心layout_below:
將該視圖放在資源ID
下方layout_toRightOf:
將該視圖放在資源ID
右邊
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="你的名字" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/name"
android:layout_alignParentRight="true"
android:text="正確" />
</RelativeLayout>
GridView
網格佈局
GridView
其實是一個網格一樣的視圖組件,是一個ViewGroup
的二維視圖。用適配器可以將佈局進行填充。
ListView列表組件
ListView
是一個用於顯示列表的可以滾動的視圖組,列表項也可以用適配器進行添加內容的。
結語
本文主要講解 Android精通:View與ViewGroup,LinearLayout線性佈局,RelativeLayout相對佈局,ListView列表組件
下麵我將繼續對
Java
、Android
中的其他知識 深入講解 ,有興趣可以繼續關註小禮物走一走 or 點贊