Android開發系列9——UI開發詳解

前言

Android的UI開發採用兩種方式:

  • 1.編寫XML;
  • 2.純代碼編寫

IOS的UI開發兩種方式:

  • 1.storyboard、XIB
  • 2.純代碼編寫

  Android所有的UI組件底層都是繼承於View,一些組件繼承於ViewGroup的子類。Android在UI開發過程中採用的”組合器“設計模式進行UI的佈局。 佈局都是依靠一個UI容器(ViewGroup),在容器內添加UI組件的方式。

一、佈局管理器

1.基本的管理器

佈局管理器是繼承於ViewGroup的子類,佈局管理器主要用途:

  • 容納UI組件
  • 調整UI組件的位置和大小

佈局管理器的種類和簡單介紹:

佈局類型 佈局名稱 詳細介紹
constraintlayout 約束佈局 在Api9以上的Android系統,佈局嵌套過多的問題,以靈活的方式定位和調整小部件
LInearLayout 線性佈局 行、列 模式的佈局
TableLayout 表格佈局(繼承LInearLayout) 多個列
FrameLayout 幀佈局(繼承ViewGroup) 幀:多個UI控件在同一個位置的同時佈局
RelativeLayout 相對佈局 相對:一個UI組件相對其他組件
GridLayout 網格佈局 把UI分成網格,對網格內在進行UI佈局
AbsoluteLayout 絕對佈局 依靠的是絕對座標的佈局

每種佈局管理器之間的繼承關係:

View
ViewGroup
constraintlayout
TableLayout
LInearLayout
FrameLayout
RelativeLayout
GridLayout
AbsoluteLayout

2.AdapterView

AdapterView是一個重要的組件,它是一個抽象的基類,其子類在開發過程中非常常用。(就像IOS中的:UITableView、UICollectionView),接下來會介紹一下AdapterView及其子類的繼承關係.

ViewGroup
AdapterView
AbsListView
AbsSpinner
adapterViewAnimator
ListView
GridView
ExpandableListView
Spinner
Gallery
AdapterViewFlipper
StackView

接下來詳細介紹一下AdapterView子類中常用的幾種子類。

UI組件 組件名稱 介紹
ListView 列表視圖 非常常用的組件,用於垂直列表的形式顯示所有列表項(還要一個ListActivity可以直接使用)
GridView 網格視圖 按照行、列的方式來顯示多個組件
ExpandableListView 可展開的列表組件 可以把列表項分爲機組,每組又可包含多個列表項
Spinner 、Gallery 列表選擇框 一個列表選擇框
AdapterViewFlipper 顯示上一個下一個圖片,相機中顯示圖片
StackView 疊在一起顯示View

在上邊AdapterView的子類過程中,需要使用大量數據Adapter 和 AdapterView對應相互綁定顯示數據。
Adapter常用的實現類如下:

  • ArrayAdapter:簡單、易用的Adapter。常用於將數組或List集合的多個值包裝成多個列表項
  • SimpleAdapter:功能強大的Adapter,可用於將List集合的多個對象包裝成多個列表項
  • SimpleCursorAdapter: 和SimpleAdapter類似,只是用於包裝Cursor提供的數據。
  • BaseAdapter:通常用於被擴展。

以上僅簡單介紹了AdapterList和Adapter之間的關係,具體的詳細方法,可以參看Android開發文檔

二、UI組件

  UI組件大體可以分爲:圖、文、控制器等。接下來簡單講述一下Android的系統組件中對應的圖、文、控制器組件

1.TextView組件

  TextView組件直接繼承於View,是一個在界面顯示文本類似於編譯器(被閹割的<不能編輯>)的UI組件,但是TextView有豐富的子類,提供豐富多樣的UI組件。

  TextView及其常用子類的組件介紹

UI組件 組件名稱 介紹
TextView 文本框 主要用於顯示文字信息的UI組件,不能編輯(類似於IOS UILable)
EditText 編輯框 主要用於編輯輸入,例如:賬號、密碼、驗證碼等
Button 按鈕 具有相應效果的
RadioButton 單選按鈕 字面意思就可以理解
CheckBox 複選框 類上
ToggleButton 狀態開關按鈕 類上
Switch 開關 類上

TextView及其常用子類的繼承關係如下所示:

View
TextView
EidtText
Button
CompoundButton
RadioButton
CheckBox
ToggleButton
Switch

TextView的詳細方法,可以參看Android開發文檔

2.ImageView

  ImageView繼承於View組件,主要功能用於顯示Image的組件。

UI 組件 組件名稱 介紹
ImageView 圖片顯示器 用於顯示Image、Drawable內容的UI組件
ImageButton 圖片按鈕 顯示圖片的按鈕
QuickContactBadge 顯示關聯到特定聯繫人的圖片
ZoomButton 縮放按鈕 一個包含放大、縮小按鈕的控件

ImageView及其常用子類的繼承關係如下所示:

View
ImageView
ImageButton
QuickContactBadge
ZoomButton

ImageView的詳細方法,可以參看Android開發文檔

3.ProgressBar

ProgressBar是一個進度的組件,同樣繼承於View。主要用於描述進度的一個組件。接下來會介紹ProgressBar及其子類。

UI組件 組件名稱 介紹
ProgressBar 進度條 加載過程中的進度條
SeekBar 推動條 可以拖動的,播放器的進度
RatingBar 星級評分條

ProgressBar及其子類的繼承關係如下:

View
ProgressBar
AbsSeekBar
SeekBar
RatingBar

ProgressBar的詳細方法,可以參看Android開發文檔

三、其他組件

1.ViewAnimator

ViewAnimation是一個基類,它繼承了FrameLayout,所有它表現出FrameLayoutd的特徵,同時在View切換時表現出動畫效果。ViewAnimator的繼承關係及其子類如下圖所示:

FrameLayout
ViewAnimator
ViewSwitcher
ViewFlipper
ImageSwitcher
TextSwitcher

ViewAnimator及其子類的介紹:

UI組件 組件名稱 介紹
ViewSwitcher 視圖切換組件 將多個View層疊在一起,每次顯示一個組件,View切換過程中指定動畫效果
ImageSwitcher 圖片切換組件 具有和ViewSwitcher相似的特徵
TextSwitcher 文本切換組件 具有和ViewSwitcher相似的特徵
ViewFlipper 切換視圖組件 負責多個View的切換動畫

ViewAnimation的詳細方法,可以參看Android開發文檔

2.其他的UI組件

2.1 UI基礎組件
UI組件 組件名稱 介紹
Toast 提示消息框(帶文字、圖片信息) Toast提示消息不會獲得焦點,一段時間自動消失
CalenderView 日曆視圖組件 用於顯示和選擇日期
DatePicker 日期選擇器 (FrameLayout的子類) 用於選擇日期
TimerPicker 時間選擇器 (FrameLayout的子類) 用於選擇時間
NumberPicker 數值選擇器 讓用戶輸入數值:鍵盤輸入和拖動選擇
SearchView 搜索框組件 用於文本框內輸入文字,通過監聽器監聽用戶輸入內容,進行搜索
TabHost 選擇卡 可以方便的在窗口放置多個標籤,每個標籤獲得一個和外部容器相同大小的組件擺放區域
ScrollView 滾動視圖 用於垂直、水平方向添加組件進行滾動的組件
Notification 通知組件 一個具有全局效果的通知
AlertDialog 提示對話框 功能最豐富、實際應用最廣的對話框
ProgressDialog 進度對話框 這個對話框只是對進度條的封裝
DatePickerDialog 日期選擇對話框 對話框對DatePicker的封裝
TimePickerDialog 時間選擇對話框 對TimePicker的封裝
PopupWindow 彈出窗口 彈出一個對話框的新組件
2.1 UI 菜單
UI組件 組件名稱 介紹
SubMenu 子菜單 代表一個子菜單,包含1~N個MenuItem
ContextMenu 上下文菜單 代表一個上下文菜單,包含1~N個MenuItem
PopupMenu 彈出式菜單 彈會顯示組件的下方或者上方

同時可以使用XML自定義Menu

2.1 UI 活動條(ActionBar)

ActionBar主要用於顯示、隱藏ActionBar。可以實現Bar的導航等功能

總結

Android系統中系統自帶的UI組件基本如上方列舉的,可以基本瞭解可以使用的UI組件,更好的學習Android的UI佈局,如果需要用戶可以自定義新的UI組件,本文主要是列舉Android中的UI組件和簡單介紹。

持續更新中……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章