Android中常用UI組件總結

UI組件之佈局管理器


A.     線性佈局(LinearLayout):控制各組件橫向排列,到頭之後,剩下的組件將不會顯示出來。常用屬性

      1.      android:baselineAligned(boolean):該屬性佈局爲false將阻止該佈局管理器與它的子元素基線對齊。相關方法setBaselineAligned(boolean)。

      2.      android:divider:設置垂直佈局時兩組件的分割條。相關方法:

setDividerDrawable(Drawable)

      3.      android:gravity:設置組件對齊方式,支持top、buttom、left、right等幾個屬性值,同時也支持組合的屬性值。方法:set Gravity(int)

B.     表格佈局(TableLayout):TableLayout繼承了LinearLayout,本質依然是線性佈局管理器。通過添加TableRow來控制其他組件的行和列。單元格設置爲寬度可以收縮(Shrinkable)、寬度可以被拉伸(Strechable)、單元格被隱藏(Collapsed)。TableLayout支持所有的LinearLayout 包含的XML屬性,除此之外還有以下屬性:

       1.      android:collapsedColumns:相關方法setColumnCollapsed(int,boolean)設置需要被隱藏的列序號,多個用逗號隔開。

       2.      android: shrinkcolumns:相關方法setShrinkAllColumns( boolean)設置允許被收縮的列序號,多個用逗號隔開。

       3.      android: strechcolumns:相關方法 set StrechAllColumns(boolean)設置允許被拉伸的列的列序號,多個用逗號隔開

C.     幀佈局(FrameLayout):直接繼承了ViewGroup組件,爲每個組件創建一個空白區域,每個子組件佔用一幀,根據其gravity屬性對齊。常用屬性:

      1.      android:foreground:相關方法setForeground(Drawable) 設置該幀容器的前景圖像。

       2.      android:foregroundGravity:相關方法 setForegroundGravity(int)定義繪製前景圖像的gravity屬性。

D.     相對佈局(RalativeLayout):子組件的位置總是相對於兄弟組件、父組件、容器決定的。提供了一個內部類:RalativeLayout.LayoutParams

RalativeLayout常用屬性:

       1.      android:gravity: 相關方法setGravity(int),設置該佈局容器內各子組件的對齊方式。

       2.      android:ignoreGravity: 相關方法setIgnoreGravity(int) 設置哪個組件不受gtavity屬性的影響。

UI組件之TextView及其子類

A.     文本框(TextView)與編輯框(EditText)的功能和用法:

1.      TextView:直接繼承自View,還是EditText、Button的父類。子類EditText允許用戶編輯文本框內容。提供了大量的XML屬性,通過這些屬性來控制TextView中文本的行爲:設置字號(android:textSize=”xx pt”)、指定背景(android:background=””)、字母大寫、增加鏈接(android:autoLink=”email/phone”)等

2.      EditText:它使用了大部分TextView的XML屬性,可以接受用戶輸入,最重要的屬性就是inputType。EditText還派生了兩個類,AutoCompleteTextVeiw:帶有自動完成功能的編輯框;ExtractEditText: 並不是UI組件。而是EditText組件的底層服務類,負責全屏輸入法支持。

B.     按鈕組件的功能和用法

1.      Button繼承了TextView,按鈕提供給用戶單擊,觸發onclick事件。同樣可以利用textview的XML屬性來爲按鈕組件設置不同的樣式風格背景等。使用9Patch圖片作爲按鈕背景可以按照自己的意圖縮放圖片某個部分。後綴名爲.9.png。

2.      在活動中,通過findViewById()方法獲取佈局文件中的button組件。傳入的數據爲R.id.button,返回一個View對象,在向下轉型爲Button類型得到按鈕實例,再通過調用SetOnClickListener()方法爲按鈕註冊一個監聽器,點擊就執行onClick()方法。

3.      單選按鈕(RadioButton)和複選框(CheckBox):繼承自Button類,多了一個可選中的功能(android:cheched屬性)。

4.      狀態開關按鈕ToggleButton與開關Switch:也是Button的子類,類似於複選框,通常用於切換程序的某種狀態。

C.     時鐘(AnalogClock和DigitalClock):

1.      DigitalClock本身就繼承了TextView,顯示內容總是當前時間。

2.      AnalogClock則繼承View組件,重寫了View的onDraw方法。

D.     計時器(Chronometer)繼承自TextView,顯示從某個時刻到現在經歷的時長。

常用方法有:setBase(long base ):設置起始時間;setFormat(String format):設置顯示時間制式;start():開始計時;stop():停止計時;

SetOnChronometerTickListener(Chronometer.OnChronometerTickListener):爲計時器綁定事件監聽器。

 UI組件之ImageView及其子類

ImageView繼承自View組件,主要用於顯示圖片。派生的子類有ImageButton、ZoomButton等。屬性中android:scaleType屬性設置顯示的圖片如何移動和縮放以適應ImageView的大小,有多個屬性值。

UI組件之AdapterView及子類

A.     AdapterView本身是一個抽象基類,繼承了ViewGroup,本質是容器,可以包含多個列表項(由Adapter提供)並將它們用合適的方式顯示出來(調用AdapterView的setAdapter(Adapter)方法設置Adapter即可)。派生的子類用法相似,只是在顯示界面有一定區別。

B.     三個子類:AbsListView、AbsSpinner和AdapterViewAnimator,依然是抽象的,實際使用時依然用子類。

C.     列表視圖(ListView)和ListActivity:ListView以垂直列表的形式顯示列表項,可以直接用ListView進行創建,也可以讓Activity繼承ListActivity(相當於該Activity顯示組件爲ListView)。

 UI組件之AdapterView及子類

A.     AdapterView本身是一個抽象基類,繼承了ViewGroup,本質是容器,可以包含多個列表項(由Adapter提供)並將它們用合適的方式顯示出來(調用AdapterView的setAdapter(Adapter)方法設置Adapter即可)。派生的子類用法相似,只是在顯示界面有一定區別。

B.     三個子類:AbsListView、AbsSpinner和AdapterViewAnimator,依然是抽象的,實際使用時依然用子類。

C.     列表視圖(ListView)和ListActivity:ListView以垂直列表的形式顯示列表項,可以直接用ListView進行創建,也可以讓Activity繼承ListActivity(相當於該Activity顯示組件爲ListView)。

D.     adapter接口及實現類:派生了兩個子接口(ListAdapter和SpinnerAdapter)ListAdapte爲AbsListView提供列表項,而SpinnerAdapter爲AbsSpinner提供列表項。常用實現類有:

1.      ArrayAdapter:通常用於將數組或List集合的多個值包裝成多個列表項

2.      SimpleAdapter:可用於將List集合的多個對象包裝成多個列表項

3.      SimpleCursorAdapter:類似於SimpleAdapter只用於包裝Cursor提供的數據

4.      BaseAdapter:通常用於被擴展

創建ArrayAdapter時必須指定如下三個參數:

1.      Context:代表了訪問整個Android應用的接口,幾乎創建所有組件都需要傳入Contexe對象

2.      textViewResourceld:一個資源id,該資源id代表一個TextView

3.      數組或List:該數組或List將負責爲多個列表項提供數據。

E.      自動完成文本框(AutoCompleteTextView)的功能和用法:

從EditText派生而出,當用戶輸入一定字符後自動完成文本框會顯示一個下拉菜單,供用戶選擇,當用戶選擇摸個菜單項之後,AutoCompleteTextView按用戶選擇自動填寫該文本框。使用AutoCompleteTextView,只要爲它設置一個Adapter,該Adapter封裝了AutoCompleteTextView預設的提示文本。

F.      網絡視圖(GridView)的功能和用法:

用於在界面上按行、列分佈的方式來顯示多個組件。和ListView有共同的父類(AbsListView),ListView只顯示一列,GridView則可以顯示多列。可以通過四種創建Adapter來提供顯示數據。

G.     可展開的列表組件(ExpandableListView)

是List的子類,把應用中的列表項分爲幾組,每組又可包含多個列表項。實現ExpandableListView有如下三種方式:

1.      使用SimpleExpandableListAdapter將兩個List集合包裝成ExpandableListAdapter。

2.      擴展Base ExpandableListView實現ExpandableListAdapter

3.      使用SimpleCursorTreeAdapter將Cursor中的數據包裝成simpleCursorTreeAdapter

H.     Spinner的功能和用法

一個列表選擇框,彈出一個菜單供用戶選擇。只要爲Spinner指定android:entries屬性即可實現Spinner,如需動態的進行定製,則需要Adapter爲Spinner提供列表項。

I.       畫廊視圖(Gallery)的功能和用法:

顯示一個水平的列表選擇框,允許用戶通過拖動來查看上一個、下一個列表項。只要爲它提供一個內容Adapter即可。Adapter方法返回的View將作爲Gallery列表的列表項。可以通過OnItemSelectdListener監聽器監控Gallery選擇項的改變。

J.       AdapterViewFlipper的功能和用法:

顯示Adapter提供的多個View組件,但每次只能顯示一個,程序可以通過showPrevious()和showNext()方法控制。還可以在切換時使用漸隱漸現上午動畫效果。還可以調用startFlipping()控制它自動播放下一個View組件。

K.      StackView的功能和用法:

也用於顯示Adapter提供的系列View。將會以堆疊的方式來顯示多個列表項。提供了兩種控制方式:

1.      拖走StackView中處於頂端的View。下一個View將會顯示出來。將上一個View拖進StackView,將使之顯示出來。

2.      通過調用StackView的showNext()、showPrevious()控制顯示上一個、上一個組件。

 UI組件之ProgressBar及其子類:

本身代表了進度條組件,它還派生了兩個常用組件,SeekBar和RatingBar。

A.     進度條(ProgressBar)的功能和用法:用於向用戶顯示某個耗時操作完成的百分比,進度條可以動態的顯示進度,避免長時間執行某個操作時,讓用戶感覺失去響應。@android:style/Widget.ProgressBar.Horizontal(水平進度條)

@android:style/Widget.ProgressBar.Inverse(普通大小的環形進度條)

@android:style/Widget.ProgressBar.Large(大環形進度條)

@android:style/Widget.ProgressBar.Large.Inverse(大環形進度條)

@android:style/Widget.ProgressBar.Small(小環形進度條)

@android:style/Widget.ProgressBar.Small.Inverse(小環形進度條)

常用方法:setProgress(int ):設置進度的完成百分比;incrementProgressBy(int):設置進度條的進度增加或減少。參數爲正→增加,參數爲負→減少。

顯示在標題上的進度條:調用Activity的requestWindowFeature()方法,傳入

Window.FEATURE_INDETERMINATE_PROCESS在窗口白提上顯示不帶進度的進度條,傳入Window.FEATURE _PROCESS則顯示帶進度的進度條。調用Activity的setProgress

-BarVisibility(boolean)或setProgressBarIndeterminateVisibility(boolean)方法即可控制進度條的顯示和隱藏。

B.     拖動條(SeekBar)的功能和用法:進度條採用顏色填充來表明進度完成的程度,而拖動條則通過滑塊的位置來標示數值,並且允許用戶拖動滑塊來改變值。滑塊外觀通過如下屬性來指定。android:thumb: 指定一個Drawable 對象,該對象作爲自定義滑塊。爲它綁定一個OnSeekBarChangeListener監聽器以響應滑塊位置的改變。

C.     星級評分條(RatingBar)的功能和用法:

它和拖動條有共同的父類:AbsSeekBar,而RatingBar通過星星來表示進度。通過綁定OnRatingBarChangeListener監聽器,來響應星級評分條的改動。

 UI組件之ViewAnimator及其子類

A.     ViewAnimator是一個基類,繼承了FrameLayout,因此它表現出FrameLayout的特徵。可以將多個View組件疊在一起,在切換時表現出動畫效果。

B.     ViewSwitcher的功能和用法:每次只顯示一個組件,支持切換時指定的動畫效果。一般通過調用ViewSwitcher的setFactory(ViewSwitcher.ViewFactory)方法爲之設置ViewFactory,並由該ViewFactory爲之創建View即可。

C.     圖像切換器(ImageSwitcher)的功能和用法:

繼承了ViewSwitcher,因此具有和ViewSwitcher一樣的特徵;使用方法:爲ImageSwitcher提供一個ViewFactory,該ViewFactory生成的View組件必須是ImageView。需要切換圖片時,只要調用ImageSwitcher的setImageDrawable(Drawable drawable)、setImageResource(intresid)和setImageURI(Uri uri)方法切換圖片即可。

D.     文本切換器(TextSwitcher)的功能和用法:

繼承了ViewSwitcher,因此可以在切換View組件時使用動畫效果。使用TextSwitcher也需要設置一個ViewFactory。與ImageSwitcher不同的是ViewFactory的makeView ()方法必須返回一個TextView組件。

E.      ViewFlipper的功能與用法:

繼承了ViewAnimator,可以調用addView(View v)添加多個組件,之後可以使用動畫控制多個組件之間的切換效果。ViewFlipper需要開發者通過addView(View v)添加多個View。

各種雜項組件:

A.     日曆視圖(CalendarView)組件的功能和用法:

日曆視圖可用於顯示和選擇日期,用戶既可以選擇一個日期,也可以通過觸摸來滾動日曆。也可以調用CalendarView的setOnDateChangeListener()方法爲此控件的點擊事件添加事件監聽器。

B.     日期、時間選擇器(DatePicker和TimePicker)的功能和用法

DatePicker和TimePicker都是從FrameLayout派生而來,其中DatePicker 供用戶選擇日期;而TimePicker則供用戶選擇時間。

C.     數值選擇器(NumberPicker)的功能和用法:

用於讓用戶輸入數值,既可以輸入也可以通過拖動來選擇數值。如下三個方法:

setMinValue(int minVal):設置該組件支持的最小值

setMaxValue(int maxVal): 設置該組件支持的最大值

setValue(int value):設置該組件的當前值

D.     搜索框(SearchView)的功能和用法:

可以讓用戶在文本框中輸入文字,並允許通過監聽器監控用戶輸入,當用戶提交搜索時,也可以通過監聽器執行實際的搜索。

常用方法:

setconifiedByDedault(Boolean iconified):設置該搜索框默認是否自動縮小爲圖標。

setSubmitButtonEnabled(Boolean enabled):設置是否顯示搜索按鈕。

setQueryHint(CharSequence hint):設置搜索框內默認顯示的提示文本。

setOnQueryTextListener(SearchView.OnQueryTextListener):爲該搜索框設置事件監聽器。

E.      選項卡(TabHost)的功能和用法

TabHost可以非常方便的在窗口上放置多個標籤頁,每個標籤頁相當於獲得了一個與外部容器相同大小的組件擺放區域。通過這種方式,就可以在一個容器中放置更所組件。

F.      滾動視圖(ScrollView)的功能和用法

用於爲普通組件添加滾動條的組件。最多隻能包含一個組件,而ScrollView的作用就是爲該組件添加垂直滾動條。

G.     Notification的功能和用法:

Notification是顯示在手機狀態欄的通知,代表的是一種具有全局效果的通知,一般通過NotificationManager服務來發送Notification。

 




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