Android中Activity Window View ViewGroup之間的關係
Activity:是Android四大組件之一,用於展示一個與使用者互動的介面
----展示介面
----與使用者互動
Activity相當於控制器,負責調用業務類的方法。簡單的業務可以直接在Activity中處理。
Activity通過內建是Window對象的setContentView(資源位置.資源類型.資源)方法來展示介面。
使用者通過View操作介面。
與使用者互動時,通過View來捕獲事件,再通過WindowManagerService傳遞訊息(當前操作的控制項,事件的類型)。Android架構再回調相應的Activity方法,實現與使用者的互動。
Window:是Android中的視窗,表示最上層視窗,也就是主視窗,每一個主視窗,都有一個view,稱之為DecorView(裝飾視圖),它是主視窗的頂級View(DecorView必須是一個版面配置容器,因為它要容納其他的View)。當Activity調用setContentView()時,實際上就是調用
Window對象的setContentView()方法,執行該方法,把使用者定義的View添加到DecorView中,最終完成對View的展示。
View:視圖,是使用者介面組件的基本構建塊,它在螢幕中佔用一個矩形地區,它是所 有UI控制項的基類,如一個按鈕或文字框。View負責圖形介面渲染及事件處理
Android已經為我們提供了一系列的標準UI控制項供我們直接使用,同時,我們也可以通過繼承於View或View的子類,來實現我們自訂的UI控制項
ViewGroup:Android中的視圖組。包含多個View,也可以包含ViewGroup。
ViewGroup是一個特殊的View,能夠容納其它的View(子控制項),它是布局和視圖容器的基類
* ViewGroup.LayoutParams 布局參數類屬性:
android:layout_width 相對於父控制項的寬度 (wrap_content, match_parent,fill_parent)
android:layout_height 相對於父控制項高度 (wrap_content,match_parent,fill_parent)
* ViewGroup常用的方法
addView(): 向視圖組添加View
removeView():從視圖組移去View
getChildCount:獲得視圖組子控制項的數量
getChildAt() : 獲得具體某個子控制項
在Android中ViewGroup是View的子類,布局管理器是ViewGroup的子類。