編輯:Android技術基礎
告別了第一章,迎來第二章——Android中的UI(User Interface)組件的詳解, 而本節我們要學習的是所有控件的父類View和ViewGroup類!突發奇想,直接翻譯官方文檔對 這兩個東西的介紹吧,對了,天朝原因,google上不去,Android developer上不去,我們可以 改hosts或者用vpn代理,當然也可以像筆者一樣使用國內的API鏡像,這裡分享個吧: http://androiddoc.qiniudn.com/guide/topics/ui/overview.html 這個鏡像是5.0的API!
在Android APP中,所有的用戶界面元素都是由View和ViewGroup的對象構成的。View是繪制在屏幕上的用戶能與之交互的一個對象。而ViewGroup則是一個用於存放其他View(和ViewGroup)對象的布局容器! Android為我們提供了一個View和ViewGroup子類的集合,集合中提供了一些常用的輸入控件(比如按鈕和文本域)和各種各樣的布局模式(比如線性或相對布局)
你的APP的用戶界面上的每一個組件都是使用View和ViewGroup對象的層次結構來構成的,比如 圖 1。每個ViewGroup都是要給看不見的用於組織子View的容器,而它的子View可能是輸入控件 或者在UI上繪制了某塊區域的小部件。有了層次樹,你就可以根據自己的需要,設計簡單或者復 雜的布局了(布局越簡單性能越好)
圖 1.一個UI布局的層次結構的插圖
定義你的布局,你可以在代碼中實例化View對象並且開始構建你的樹,但最容易和最高效的方式來定義你的布局則是使用一個XML文件,用XML來構成布局更加符合人的閱讀習慣,而XML類似與HTML 使用XML元素的名稱代表一個View。所以< TextView >元素會在你的界面中創建一個TextView控件,而一個< LinearLayout >則會創建一個LinearLayout的容器! 舉個例子,一個簡單簡單的垂直布局上面有一個文本視圖和一個按鈕,就像下面這樣:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a TextView" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a Button" /> </LinearLayout>
當你的App加載上述的布局資源的時候,Android會將布局中的每個節點進行實例化成一個個對象,然後你可以為這些定義一些額外的行為,查詢對象的狀態,或者修改布局。 完整創建UI布局的引導,請參考XML Layouts
你無需全部用View和ViewGroup對象來創建你的UI布局。Android給我們提供了一些app控件,標准的UI布局,你只需要定義內容。這些UI組件都有其屬性介紹的API文檔,比如操作欄,對話框和狀態通知欄等。
好吧,翻譯可能比較拗口,哎,英語盲盡力了,簡單歸納下上述內容:
Android裡的圖形界面都是由View和ViewGroup以及他們的子類構成的: View:所有可視化控件的父類,提供組件描繪和時間處理方法 ViewGroup: View類的子類,可以擁有子控件,可以看作是容器 Android UI中的控件都是按照這種層次樹的結構堆疊得,而創建UI布局的方式有兩種, 自己在Java裡寫代碼或者通過XML定義布局,後者顯得更加方便和容易理解! 也是我們最常用的手段!另外我們一般很少直接用View和ViewGroup來寫布局,更多的 時候使用它們的子類控件或容器來構建布局!
恩呢,對View和ViewGroup有個大概了解即可,平時我們是不會直接用的,一般是自定義View的時候 才會使用這兩個東西!
寫在前面本節將介紹如何使用Android Studio開發Android APP,和前面Eclipse + ADT + SDK搭建Android開發
(一) AsyncTask,是android提供的輕量級的異步類。可以直接繼承AsyncTask,在類中實現異步操作,可以通過接口實現UI進度更新,最後反饋執行的結果給
本節引言:不知不覺終於來到Android網絡編程這一章節,前面我們玩的都是單機,肯定是不過瘾是吧,本節開始我們來學習Android網絡編程相關的一些
本節引言在上一節中我們對LinearLayout進行了詳細的解析,LinearLayout也是我們用的比較多的一個布局,我們更多的時候更鐘情於他的w