本文內容 環境 android-common 項目結構 演示 android-common 參考資料 android-common 主要包括如下內容: 緩存,包括圖片緩存、預取緩存、網路緩存。 公共 View,即功能封裝好的部件,包括下拉獲得最新和上拉載入更多 ListView、底部載入更多 Scr ...
本文內容
- 環境
- android-common 項目結構
- 演示 android-common
- 參考資料
android-common 主要包括如下內容:
- 緩存,包括圖片緩存、預取緩存、網路緩存。
- 公共 View,即功能封裝好的部件,包括下拉獲得最新和上拉載入更多 ListView、底部載入更多 ScrollView、滑動一頁 Gallery 等等。
- 常用工具類,包括網路、下載、資源操作、Shell、文件讀寫、Json、序列化/反序列化、隨機數、集合(Array、List、Map)、APK 包等等。
該演示可以說是常見效果的集合,估計作者攢了好久,但作者將各個依賴的項目放得到處都是,還要現找再引用才行。android-common 演示項目缺了三個項目的引用,真不知道他是無心,還有意。為什麼不將完整的解決方案,放到 github 上。
另外,作者還在 Demo 里實現了一個廣告~shit~
註意:所有項目中的 android-support-v4.jar 包版本要一致。
下載 Demo
環境
- Windows 2008 R2 64 位
- Eclipse ADT V22.6.2,Android 4.4.2(API 19)
- SAMSUNG GT-8618,Android OS 4.1.2
android-common 項目結構
下載 Demo 後,壓縮包包含如下文件夾。
圖 1 壓縮包內容
將這四個目錄 import 到 eclipse 中,會是五個項目,如下圖所示:
圖 2 項目結構
- android-auto-scroll-view-pager 是 auto-scroll-view-pager 項目。
- library 和 ListSamples 是,ViewPagerIndicator 項目。
- trinea-andorid-common 和 trinea-android-demo,是 android-common 庫及其演示項目。
圖 3 主程式,顯示所有演示的內容
演示 android-common
緩存類
- 主要特性
- 獲取及預取新圖片 ,包含二級緩存。
- 可選擇多種緩存演算法(FIFO、LIFO、LRU、MRU、LFU、MFU等13種)或自定義緩存演算法。
- 可方便的保存及初始化恢複數據。
- 省流量性能佳,僅有一個線程獲取圖片。
- 支持 HTTP 請求、header 設置及不同類型網路處理。
- 根據系統配置初始化緩存。
- 支持等待隊列。
- 包含map的大多數介面。
- 圖片緩存。適用獲取圖片較多,且圖片使用頻繁的應用,包含二級緩存,如新浪微博、twitter、微信頭像、美麗說、蘑菇街、花瓣、淘寶等等。
圖 4 圖片緩存
- 圖片 SD 卡緩存。適用獲取圖片較多,且較大的情況。而需要二級緩存及 ListView 或 GridView 圖片載入推薦使用上面的“圖片緩存”。
圖 5 圖片 SD 卡緩存
- 網路緩存。適用網路獲取內容不大的應用,尤其是 API 介面數據,如新浪微博、twitter 的 timeline、微信公眾賬號發送的內容等等。
圖 6 網路緩存
公用 View
功能封裝好的部件。
- “下拉獲得最新及上拉載入更多” ListView
圖 7 “下拉獲得最新及上拉載入更多” ListView
- 滑動(或項)的圖片庫
圖 8 滑動(或項)的圖片庫
- 滑動到頂部或底部時響應的 ScrollView
圖 9 滑動到頂部或底部時響應的 ScrollView
- ViewPager Multi Fragment
圖 10
- ViewPager Demo
圖 11 ViewPager 演示
工具類
目前,包括 HttpUtils、DownloadManagerPro、ShellUtils、PackageUtils、PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。
- 下載管理 DownloadManager
圖 12 下載管理
以及 Android root 許可權及 APK root 靜默安裝、圖片工具類(Drawable、Bitmap、byte 數組相互轉換;根據 url 獲得 InputStream、Drawable、Bitmap)等。
參考資料
- Trinea android-common
- Trinea android-common-demo
- android-auto-scroll-view-pager
- Android-ViewPagerIndicator
- Trinea android-common API