標籤:
一、引言
Android應用開發最重要的一份內容就是介面的開發,無論你程式包含的內容多麼優秀,如若沒有一個良好的使用者互動介面,最終也只是會被使用者所遺棄。Android SDK提供了大量功能豐富的UI組件,開發人員只需要拖拖拽拽就能完成簡單的應用,這些只是介面的展示,如果要完成優秀的使用者互動,事件響應機制當然也是重點,這是後話。
Android SDK中絕大部分UI組件都在androd.widget及其子包、android.view及其子包下,Android應用中的所有UI組件都繼承了View類,View類還有一個重要的子類:ViewGroup,下面簡單介紹下這兩個類。
二、View
View是什麼,可能每個人都有自己不同的理解。在Android官方文檔中是這麼說的:這個類表示了使用者介面的基本構建模組。一個View佔用了螢幕上的一個矩形地區並且負責介面繪製和事件處理。View是用來構建使用者介面組件(Button,Textfields等等)的基類。其實,說白了,View就是一個空白的矩形地區,類似於winform中的panel,swing開發中的JPanel,我們可以在這個空白的矩形地區內定義自己的控制項。
對於View類而言,它是所有UI組件的基類,所以它是屬性是所有組件都可以使用的,所以建議認真看一下API中關於View類的屬性。
三、ViewGroup
ViewGroup是View的子類,所以它也可以被當成View使用,它可以作為容器來放其他組件,由於ViewGroup是一個抽象類別,所以實際通常都是使用ViewGroup的子類,例如UI組件的中布局類UI組件都是繼承自ViewGroup的。
四、Context
在實際操作中,無論建立哪種UI組件,都需要傳入一個Context的參數,而Context是什麼呢?在載入資源、啟動一個新的Activity、擷取系統服務、擷取內部檔案(夾)路徑、建立View操作時等都需要Context的參與,可見Context的常見性。Context字面意思上下文,或者叫做情境,也就是使用者與作業系統操作的一個過程,比如打電話,情境包括電話程式對應的介面,以及隱藏在背後的資料;Android系統的角度來理解:Context是一個情境,代表與作業系統的互動的一種過程。從程式的角度上來理解:Context是個抽象類別,而Activity、Service、Application等都是該類的一個實現,因此,Activity、Service都可以直接作為Context使用。
五、結語&預告
從上一章到這一章,隔了太久的時間了,最近公司管理層變動,人員流動很大,所以作為小人物的我忙的熱火朝天…進度有點跟不上了,但是又不想放下技術的學習,所以擠出來點時間繼續好好看書、看部落格好好學習。Android Studio最新的版本都已經更新了1.5.X了,我機器上也更新到了1.4.1,所以文章標題也不再寫版本資訊了,只要是1.3.x後的版本應該都是支援的,有問題可以多互相溝通。
好了,說點學習的東西,對於UI組件的學習,我覺得瘋狂講義這本書安排的非常合理,我也非常認可,所以我學習也是按照這種思路來學習,後面的UI組件的章節也會照著這個思路來。因為UI組件比較多,如果不理順他們的關係,孤立的去學習,強行的去記憶,估計學習起來也會很費勁,所以下面我們根據它們的內在關聯,分成了幾組進行學習,以下是分組情況:
第一組:布局組件
LinearLayout(線性布局)、TableLayout(表格版面配置)、FrameLayout(架構布局)、RelativeLayout(相對布局)、GridLayout(網格布局)、AbsoluteLayout(絕對布局)
第二組:TextView及其子類
TextView、EditView、Button、RadioButton、CheckBox…
第三組:ImageView及其子類
ImageView…
第四組:AdapterView及其子類
ListView…Adapter介面…
第五組:ProgressBar及其子類
ProgressBar、SeekBar、RatingBar…
第六組:ViewAnimator及其子類
ViewSwitcher、ImageSwitcher、TextSwitcher…
第7組:其它雜項組件
Toast、行事曆檢視、時間(日期)選取器、數值選取器、搜尋方塊…
第8組:對話方塊
日期(時間)選擇對話方塊、進度對話方塊…
第9組:菜單 第10組:ActionBar
這些內容為暫訂吧,可能會根據實際學習內容進行調整。
Android開發自學筆記(Android Studio)—4.介面編程與View組件簡單介紹