内容简介:项目地址: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 作为异步通信框架?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
松本行弘的程序世界
松本行弘 / 柳德燕、李黎明、夏倩、张文旭 / 人民邮电出版社 / 2011-8 / 75.00元
《松本行弘的程序世界》是探索程序设计思想和方法的经典之作。作者从全局的角度,利用大量的程序示例及图表,深刻阐述了Ruby编程语言的设计理念,并以独特的视角考察了与编程相关的各种技术。阅读《松本行弘的程序世界》不仅可以深入了解编程领域各个要素之间的关系,而且能够学到大师的思考方法。 《松本行弘的程序世界》面向各层次程序设计人员和编程爱好者,也可以供相关技术人员参考。一起来看看 《松本行弘的程序世界》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
JSON 在线解析
在线 JSON 格式化工具