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


