Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android View架構總結

Android View架構總結

編輯:關於Android編程

View和Activity的區別

View有哪些?

ViewGroup是什麼?

為什麼Google產生ViewGroup?

View的層級結構是什麼?

View的onMeasure()/onLayout()/onDraw()方法做了什麼?

View和Activity的區別
android的四大組件,Activity是四大組件中唯一一個用來和用戶進行交互的組件。可以說Activity就是android的視圖層。 如果再細化,Activity相當於視圖層中的控制層,是用來控制和管理View的,真正用來顯示和處理事件的實際上是View。 每個Activity內部都有一個Window對象, Window對象包含了一個DecorView(實際上就是FrameLayout),我們通過setContentView給Activity設置顯示的View實際上都是加到了DecorView中。
View有哪些?

android提供了種類豐富的View來應對各種需求,例如提供文字顯示的TextView,提供點擊事件的Button,提供圖片顯示的ImageView,還有各種布局文件,例如Relativilayout,Linearlayout等等。他們都是繼承自View。

 

ViewGroup是什麼?
ViewGroup繼承自View,並實現了兩個接口ViewParent和ViewManager。 ViewManager提供了三個抽象方法addView,removeView,updateViewLayout。用來添加、刪除、更新布局。 ViewParent主要提供了一系列操作子View的方法例如焦點的切換,顯示區域的控制等等。
為什麼Google產生ViewGroup?
實際上所有的事情View都能做,包括顯示復雜的界面,我們只需要設計一個復雜的View即可。例如短信通知的icon,一個可以顯示圖片又可以顯示文字的View,我們後期學習了View的draw方法後,可以輕松的設計一個View來達到這個效果,但是這樣不僅復雜,而且重用性較差,還會因為一點小改動而重復的創造輪子,這顯然不符合程序員偷懶的原則,所以我們可以完全把ImageView和TextView組合到一起就可以了,這個時候我們就需要一個容器,ViewGroup,來裝這兩個View。 ViewGroup和View最大的不同是可以組合多個View,那麼多個View在一起,該如何擺放,這就是ViewGroup需要解決的問題。
View的層級結構是什麼?
我們看到的界面,都是以一個ViewGroup作為根View,通過往ViewGroup中添加子View(可以是View,也可以是ViewGroup),來組合出各具特色的界面。 這種從根到葉的組合方式,我們可以看做成一個View樹。(類似於XML),而View的顯示和事件處理,都是依賴於這個View樹。 繪制和事件處理的起始點,都是從根View開始一級一級的往下傳遞。我們從任意一層發起繪制,都將反饋到根View,然後再從上往下傳遞。 之前我們說過根View就是Window中的DecorView,也就是一個FrameLayout。
View的onMeasure()/onLayout()/onDraw()方法做了什麼?
Measure測量一個View的大小

Layout擺放一個View的位置

Draw畫出View的顯示內容

接下來我們將依次講解Android Framwork的工作原理
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved