现在的 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