Android File Picker:快速集成专业级文件选择功能

Android File Picker:快速集成专业级文件选择功能

【免费下载链接】AndroidFilePicker FilePicker is a small and fast file selector library that is constantly evolving with the goal of rapid integration, high customization, and configurability~ 【免费下载链接】AndroidFilePicker 项目地址: https://gitcode.com/gh_mirrors/an/AndroidFilePicker

Android File Picker是一个专为安卓应用设计的本地文件选择框架,它通过简洁的API和丰富的配置选项,让开发者能够快速实现功能完善的文件管理界面。无论是社交媒体应用中的图片选择,还是办公工具中的文档查找,这个框架都能提供流畅的用户体验。

核心功能特性

Android File Picker提供了全面的文件管理解决方案:

  • 极简启动:一行代码即可启动文件选择器,支持在Activity或Fragment中使用
  • 智能文件识别:内置多种文件类型识别器,包括图片、视频、音频、文档等
  • 灵活选择模式:支持单选和多选模式,可自定义最大选择数量
  • 精准内容过滤:可配置只显示特定类型的文件或仅显示文件夹
  • 丰富主题定制:提供四种内置主题和完全自定义主题支持
  • 深度事件处理:公开条目点击监听器,支持自定义交互逻辑

快速集成指南

环境配置

在项目的build.gradle文件中添加仓库配置:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
    }
}

在模块的build.gradle文件中添加依赖:

dependencies {
    implementation 'me.rosuh:AndroidFilePicker:latest_version'
}

权限处理

根据不同的Android版本,需要处理相应的存储权限:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
    requestPermissions.launch(arrayOf(READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, READ_MEDIA_AUDIO))
} else {
    requestPermissions.launch(arrayOf(READ_EXTERNAL_STORAGE))
}

基础使用示例

最简单的文件选择器启动方式:

FilePickerManager
    .from(this)
    .forResult(FilePickerManager.REQUEST_CODE)

获取选择结果

在onActivityResult中处理选择结果:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    when (requestCode) {
        FilePickerManager.REQUEST_CODE -> {
            if (resultCode == Activity.RESULT_OK) {
                val list = FilePickerManager.obtainData()
                // 处理选中的文件列表
            }
        }
    }
}

高级功能配置

单选模式配置

FilePickerManager
    .from(this)
    .setTheme(getRandomTheme())
    .enableSingleChoice()
    .forResult(FilePickerManager.REQUEST_CODE)

只显示图片文件

FilePickerManager
    .from(this)
    .setTheme(getRandomTheme())
    .filter(object : AbstractFileFilter() {
        override fun doFilter(listData: ArrayList<FileItemBeanImpl>): ArrayList<FileItemBeanImpl> {
            return ArrayList(listData.filter { item ->
                ((item.isDir) || (item.fileType is RasterImageFileType))
        })
    }
    .forResult(FilePickerManager.REQUEST_CODE)

多选文件配置

FilePickerManager
    .from(this)
    .setTheme(getRandomTheme())
    .maxSelectable(2)
    .forResult(FilePickerManager.REQUEST_CODE)

自定义根目录

FilePickerManager.from(this)
    .storageType("⬇️", FilePickerConfig.STORAGE_CUSTOM_ROOT_PATH)
    .setTheme(getRandomTheme())
    .setCustomRootPath("/storage/emulated/0/Download")
    .forResult(FilePickerManager.REQUEST_CODE)

自定义文件类型

class CustomFileType(
    override val fileType: String = "",
    override val fileIconResId: Int = R.drawable.ic_unknown_file_picker
) : FileType {
    override fun verify(fileName: String): Boolean {
        return fileName.endsWith("123")
    }
}

主题展示

Android File Picker提供四种精美的内置主题,满足不同应用场景的视觉需求:

Rail主题Reply主题Crane主题Shrine主题
Rail主题界面Reply主题界面Crane主题界面Shrine主题界面

实际应用效果

文件选择器示例界面 Android File Picker在实际应用中的界面展示

多文件夹浏览 框架支持多文件夹层级浏览

兼容性说明

针对不同Android版本的兼容性处理:

  • Android 13及以上:使用新的媒体选择模式
  • Android 12及以下:通过READ_EXTERNAL_STORAGE权限访问文件
  • 自定义适配:开发者可根据目标API版本进行相应配置

开发建议

  1. 权限管理:确保在启动文件选择器前已获得必要的存储权限
  2. 主题选择:根据应用整体设计风格选择合适的主题
  3. 文件过滤:合理使用文件过滤器提升用户体验
  4. 结果处理:及时释放选择结果数据避免内存泄漏

Android File Picker以其简洁的API设计、丰富的功能特性和灵活的配置选项,成为安卓应用开发中文件选择功能的理想解决方案。通过这个框架,开发者能够快速集成专业级的文件管理功能,为用户提供流畅高效的文件操作体验。

【免费下载链接】AndroidFilePicker FilePicker is a small and fast file selector library that is constantly evolving with the goal of rapid integration, high customization, and configurability~ 【免费下载链接】AndroidFilePicker 项目地址: https://gitcode.com/gh_mirrors/an/AndroidFilePicker

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值