一个小巧快速的 Android 文件选择器框架

Banner

AndroidFilePicker

它没有像 Rocky,Cosmos 或是 Peppa 这样的名字。 Android File Picker 正如其名,是一个本地文件选择器框架。 他的一些特征以下所述:html

  • ActivityFragment 中启动
    • 从一行代码开始
  • 浏览本地存储中的全部文件
    • 内置默认文件类型和文件鉴别器
    • 或者您能够本身实现文件类型
  • 自定义列表过滤器
    • 只想显示图片(或视频,音频......)? 没问题!
    • 固然,您也可只显示文件夹
  • 自定义item点击事件:只须要实现监听器
  • 四个内置主题和自定义主题
  • 还有更多待您本身探索的特性(?)
Rail Style(default) Reply Style Crane Style Shrine Style

下载使用

  1. 在你的项目中添加依赖

如今项目 build.gradle 配置文件添加仓库:java

allprojects {
    repositories {
	    ...
    	maven { url 'https://jitpack.io' }
    }
}
复制代码

而后在子模块(app)的配置文件添加依赖:android

dependencies {
    implementation 'me.rosuh:AndroidFilePicker:latest_version'
}
复制代码

latest_version 请自行替换成 最新版本git

使用

权限

此库须要两个权限:github

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

若是您没有提早授予,这个库会自动申请该权限的。app

开始使用(Kotlin)

简单的链式调用示意:框架

FilePickerManager
        .from(this@SampleActivity)
        .forResult(FilePickerManager.REQUEST_CODE)
复制代码

如今你已经起飞了🛩️...(真的只有两行)maven

若是使用 Java,那么仅须要加入一个.INSTANCE 便可使用:ide

FilePickerManager.INSTANCE
                .from(this)
                .forResult(FilePickerManager.REQUEST_CODE);
复制代码

获取结果

获取结果onActivityResult接受消息,而后调用FilePickerManager.obtainData()获取保存的数据,结果是所选取文件的路径列表(ArrayList<String>())gradle

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()
                // do your work
            } else {
                Toast.makeText(this@SampleActivity, "没有选择任何东西~", Toast.LENGTH_SHORT).show()
            }
        }
    }
}
复制代码

更多示例

来翻翻我写的飞行手册吧?

或者想看看主题配色

功能 & 特色

  1. 链式调用
  2. 默认选中实现
    • 点击条目(item)无默认实现
    • 点击CheckBox为选中
    • 长按条目为更改选中状态:选中/取消选中
  3. 内置四种主题配色 + 可自定义配色
    • 查看主题颜色示意图,而后调用setTheme()传入自定义主题
  4. 默认实现多种文件类型
    • 实现IFileType接口来实现你的文件类型
    • 实现AbstractFileType抽象类来实现你的文件类型甄别器
  5. 公开文件过滤接口
    • 实现AbstractFileFilter抽象类来定制你本身的文件过滤器,这样能够控制文件列表的展现内容
  6. 多种可配置选项
    1. 选中时是否忽略文件夹
    2. 是否显示隐藏文件夹(以符号.开头的,视为隐藏文件或隐藏文件夹)
    3. 可配置导航栏的文本,默认显示、多选文本、取消选择文本以及根目录默认名称
  7. 公开条目(item)选择监听器,可自定义条目被点击的实现

部分源码说明

看这里

Log

Update Log

TODO

TODO


Special Thanks To:

相关文章
相关标签/搜索