android资源选择器,一个小巧快速的 Android 文件选择器框架

AndroidFilePicker是一个轻量级且高度可定制的文件选择器库,支持链式调用和自定义文件过滤器。通过添加依赖和简单配置,即可在项目中集成。它提供了内置的主题和自定义配色选项,并允许用户控制文件列表显示的内容。使用者可以通过实现文件类型接口来自定义文件甄别器。此外,框架还提供了条目点击监听器和获取所选文件路径的功能。
摘要由CSDN通过智能技术生成

0d19813a20ebb1ee9eb24ca39fdd9758.png

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): ArrayList {

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() )

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值