内容简介:项目地址:bookmark: FilePicker 是一个小巧快速的文件选择器框架,以快速集成、高自定义化和可配置化为目标不断前进~:triangular_flag_on_post:
AndroidFilePicker
I 简介
:bookmark: FilePicker 是一个小巧快速的文件选择器框架,以快速集成、高自定义化和可配置化为目标不断前进~:triangular_flag_on_post:
II 使用
- 在你的项目中添加依赖
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
复制代码
dependencies {
implementation 'me.rosuh:AndroidFilePicker:latest_version'
}
复制代码
latest_version 请自行替换成最新版本
- 开始使用(
Kotlin)
简单的链式调用示意:
/**
* 自定义文件过滤器,此处使用库默认的文件类型
*/
private val fileFilter = object : AbstractFileFilter(){
override fun doFilter(listData: ArrayList<FileItemBean>): ArrayList<FileItemBean> {
val iterator = listData.iterator()
while (iterator.hasNext()){
val item = iterator.next()
// 如果是文件夹则略过
if (item.isDir) continue
// 判断文件类型是否是图片
if (item.fileType !is RasterImageFileType){
iterator.remove()
}
}
return listData
}
}
...
FilePickerManager.instance
.from(this@SampleActivity)
// 主题设置
.setTheme(R.style.FilePickerThemeReply)
// 自定义过滤器(可选)
.filter(fileFilter)
.forResult(FilePickerManager.instance.REQUEST_CODE)
复制代码
获取结果 : onActivityResult 接受消息,然后调用 FilePickerManager.obtainData() 获取保存的数据,结果是所选取文件的路径列表( ArrayList<String>() )
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
when (requestCode) {
FilePickerManager.instance.REQUEST_CODE -> {
if (resultCode == Activity.RESULT_OK) {
val list = FilePickerManager.instance.obtainData()
rv!!.adapter = SampleAdapter(R.layout.demo_item, ArrayList(list))
rv!!.layoutManager = LinearLayoutManager(this@SampleActivity)
} else {
Toast.makeText(this@SampleActivity, "没有选择图片", Toast.LENGTH_SHORT).show()
}
}
}
}
复制代码
功能 & 特点
- 链式调用
- 内置四种主题配色 + 可自定义配色
- 查看主题颜色示意图,然后调用
setTheme()传入自定义主题
- 查看主题颜色示意图,然后调用
- 默认实现多种文件类型
IFileType AbstractFileType
- 公开文件过滤接口
- 实现
AbstractFileFilter抽象类来定制你自己的文件过滤器,这样可以控制文件列表的展示内容
- 实现
- 多种可配置选项
.
- 公开条目(
item)选择监听器,可自定义条目被点击的实现
部分源码说明
-
包和文件夹
-
adapter包:两个列表(导航栏和文件列表)的数据适配器类 -
bean包:所有用到的Model类-
IFileBean是文件对象所需要实现的接口
-
-
config:管理类、配置类所在-
AbstractFileFilter:文件过滤器抽象类,用于给调用者自实现文件过滤器 -
AbstractFileType:文件类型抽象类,用于给调用者自实现自己的文件类型- 其中的抽象函数
fillFileType为文件甄别器,如果你实现了自己的文件类型,那么最好也要实现自己的文件甄别器
- 其中的抽象函数
-
DefaultFileType:默认文件类型,文件类型类的默认实现,里面实现了默认的文件甄别器
-
-
filetype:一些默认实现的文件类型- 实现接口
IFileType以实现自己的文件类型
- 实现接口
-
utils:一些 工具 类-
FileUtils类包含了文件相关的大部分所需的函数 -
PercentLayoutUtils、PercentTextView是TextView的相对布局实现(*1)
-
-
Log
<0.2.0>_2018-11-27
:recycle: :art: :rocket: :memo:
Add
- 链式调用
- 添加文件类型抽象类
- 公开文件类型接口
- 添加文件过滤抽象类
- 公开文件过滤器接口
- 公开条目点击接口,可以自实现条目点击效果
- 添加界面字符串自定义功能
- 返回键返回上层目录功能
- 添加 FilePickerConfig 类保存配置
- 新增四种主题配色
Update
- 文件类型可由调用者自己实现,也可以使用默认实现
- FileItemBean 添加图标资源变量,支持自定义类型图标
- 调用 FilePickerManager.obtainData() 获取数据,Intent 仅作消息发送功能
- 更新部分文件类型默认 icon
- README
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- node.js的Web开发框架的选择?
- 在前端框架的残酷生命周期下,我们该如何选择?
- 大数据生态圈之流式数据处理框架选择
- Element UI框架中巧用树选择器
- 数据分析的三大框架:底层技术、分析建模、工具选择
- 复杂业务下,我们为何选择 Akka 作为异步通信框架?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Microformats
John Allsopp / friends of ED / March 26, 2007 / $34.99
In this book, noted web developer and long time WaSP member John Allsop teaches all you need to know about the technology: what Microformats are currently available and how to use them; the general pr......一起来看看 《Microformats》 这本书的介绍吧!