現在的 App 都會有選取圖片的需求,部分還會有選取視訊的需求,現在用 Daguerre 就可以實現圖片、視訊、圖片+視訊的選取。讓我們來看看 Daguerre 支援庫長什麼樣子吧:
選取 | 目錄 | 預覽 |
---|---|---|
Daguerre完全開源 Github
示例
Daguerre的使用很簡單,只需要在呼叫的時候傳入相應的引數,即可開啟Daguerre的選取介面;上示例:
Daguerre.with(this)
.theme(R.style.CustomTheme)
.spanCount(3)
.maxSelectable(3)
.mimeType(MimeType.IMAGE, MimeType.JPEG)
.setImageLoader(new ImageLoader())
.launch(REQUEST_CODE);
複製程式碼
通過上面的程式碼,我們就可以猜測到有哪些功能:
- 定製主題
- 設定列表列數
- 設定最大選擇數
- 支援的資源格式定義 (Daguerre已經內建了常用的格式,開發者也可以自己定義傳遞)
- 完全自定義的圖片載入 (Daguerre並不內建圖片載入器,只提供了介面,開發者需要自己實現)
PS:目前不能自定義
Fresco
圖片的載入方式
原理
Daguerre採用的是 Loader 來獲取本地圖片或視訊資源,選取時採用了 ActionMode 並通過對 ActionMode 更改標題的方式顯示當前選擇的數量,並採取設定 action menu 給 ActionMode 的方式提供確認選取的操作。展示圖片列表的控制元件當然是 RecyclerView,而檢視圖片大圖的預覽介面也是採用RecyclerView
來實現類似ViewPager
效果
定製
Daguerre介面效果完全可以利用 Activity Theme
的定製來實現自己的需求,Daguerre 也自定義了幾個主題attr
屬性,方便在無需修改原始碼的情況實現樣式的基本定製,具體參考 Github
Daguerre簡單易用,相信能滿足你對圖片或視訊選擇的基本需求。Daguerre 已經在 Github 開源,歡迎大家 issue,fork ,也可在本文留言提出需求。歡迎各大神 commit request