Android源碼之Gallery專題研究(2),androidgallery
引言
上一篇文章已經講解了資料載入過程,接下來我們來看一看資料載入後的處理過程。按照正常的思維邏輯,當資料載入之後,接下來就應該考慮資料的顯示邏輯。
MVC顯示邏輯
大家可能對J2EE的MVC架構比較熟悉,Gallery2和MVC有什麼關係呢,簡直是瞎扯???首先,我們先回憶一下軟體設計思想以及設計原則(具體請參考http://blog.csdn.net/cdl2008sky/article/details/6364396),簡單的概括就是 緊內聚、松耦合、分層。最後再來解釋一下MVC思想,MVC的思想就是顯示層(View)邏輯和控制層(Control)邏輯進行分離。回顧了以上的知識點,我們再來看看Gallery2的設計是否符合MVC的設計思想。在闡述複雜行為時,圖表往往比語言更具有說服力,因此還有用圖表來證明我的觀點。具體請參考圖1-1所示:
圖1-1
將Gallery的主要邏輯的類別關係圖簡單的表現出來,我們可以明顯的看出Gallery的設計採用了MVC分層的設計思想。接下來的時間我們就順藤摸瓜,一層一層分析Gallery的實現方式。
當使用者進入圖庫後,首先看到的是AlbumSetPage(相簿集)處理的資料資訊;當使用者點擊具體的一個相簿時,會顯示AlbumPage(照片集)處理的資料資訊;當使用者點擊具體的一張圖片時,會顯示PhotoPage處理的資料資訊。圖庫的主要流程就是圖片瀏覽、圖片編輯和應用互動功能(備忘:圖片編輯和應用互動在後續文章中分析)。圖表是最好的表達方式,我們來看一下圖片瀏覽過程的流程圖,具體1-2所示:
圖1-2
從中我們可以看到Gallery圖庫圖片瀏覽的整體調用流程,至於圖片編輯和應用互動功能的邏輯結構相對比較簡單,在此就不做過多的闡述,感興趣的同學可以自行研究。大家如果對圖庫有什麼問題,可以在部落格的評論中提出來,一起探討,共同進步。
Android42 Gallery2源碼匯入Eclipse問題
Gellery檔案夾滑鼠右擊,選擇propertier 選擇android,在project buider target裡面選擇android 4.2的targe就可以了。
Android內建程式Gallery的源碼位置是什?
Camera裡邊,/android/packages/apps/Camera/com/android/camera/