## LFilePicker

> 说明:如果发现应用名称被修改,可以参考issues#26 查看解决方案,或者可以自己下载代码依赖改动,目前木有精力改动,如果你改了欢迎提pull,如果不能接受此缺陷,请慎用~

这是一个轻量级的文件选择器,可以检索手机目录选择文件。同时包含:

- 多种界面风格

- 支持文件多选或者单选

- 支持文件类型过滤

- 支持Fragment启动

- 自定义标题文字和颜色

- 国际化(中英文切换)

- 最大数量限制

- 全选或者全部取消

- 文件夹路径选择

- 文件大小过滤

- 默认路径指定

### 版本更新:

#### V1.8.0

- 修改了资源名称,统一添加前缀

- 增加了标题字体的大小设置

- 增加了通过主题直接修改 标题颜色和后退图标,更多菜单颜色

#### V1.7.0

- 增加接口指定初始显示路径

- 增加接口可以过滤文件大小,大于指定大小或者小于指定大小

#### V1.6.0

- 增加文件夹路径选择

#### V1.5.0

- 全选校验,避免数据重复添加

- 单选模式下不在显示全选操作

#### V1.4.0

- 最大数量限制 (withMaxNum)

- 全选或者全部取消

### 运行效果:

#### 动态操作(如果图片无法正常显示,可以查看screenshot文件夹中gif文件)

![](screenshot/操作.gif)

#### 页面效果:

![][5]

![][6]

![][7]

![][8]

![][9]

![][10]

![][11]

![][12]

![][13]

### 快速使用

#### 1. 添加引用

compile 'com.leon:lfilepickerlibrary:1.8.0'

#### 2. 添加文件读写权限

#### 3. 开启Activity

int REQUESTCODE_FROM_ACTIVITY = 1000;

new LFilePicker()

.withActivity(MainActivity.this)

.withRequestCode(REQUESTCODE_FROM_ACTIVITY)

.withStartPath("/storage/emulated/0/Download")//指定初始显示路径

.withIsGreater(false)//过滤文件大小 小于指定大小的文件

.withFileSize(500 * 1024)//指定文件大小为500K

.start();

#### 4. 接收返回结果

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == RESULT_OK) {

if (requestCode == REQUESTCODE_FROM_ACTIVITY) {

//如果是文件选择模式,需要获取选择的所有文件的路径集合

//List list = data.getStringArrayListExtra(Constant.RESULT_INFO);//Constant.RESULT_INFO == "paths"

List list = data.getStringArrayListExtra("paths");

Toast.makeText(getApplicationContext(), "选中了" + list.size() + "个文件", Toast.LENGTH_SHORT).show();

//如果是文件夹选择模式,需要获取选择的文件夹路径

String path = data.getStringExtra("path");

Toast.makeText(getApplicationContext(), "选中的路径为" + path, Toast.LENGTH_SHORT).show();

}

}

}

### 接口方法

#### 方法说明

| 方法 | 说明 |

| -------- | --------- |

| withActivity(Activity activity) |绑定Activity|

| withFragment(Fragment fragment) |绑定Fragment|

| withSupportFragment(Fragment supportFragment)|绑定V4包Fragment|

| withRequestCode(int requestCode) |设置请求码|

| withTitle(String title) |设置标题文字|

| withTitleColor(String color) |设置标题文字颜色|

| withBackgroundColor(String color) |设置标题背景颜色|

| withIconStyle(int style) |设置列表图标样式|

| withBackIcon(int backStyle) |设置返回图标样式|

| withFileFilter(String[] arrs) |设置文件类型过滤器|

| withMutilyMode(boolean isMutily) |设置多选或单选模式|

| withAddText(String text) |设置多选模式选中文字|

| withNotFoundBooks(String text) |设置没有选中文件时的提示信息|

| withMaxNum(int num)          |设置最大可选文件数量|

| withChooseMode(boolean chooseMode)|设置文件夹选择模式,true(默认)为选择文件,false为选择文件夹|

| withStartPath(String path) |设置初始显示路径|

| withIsGreater(boolean isGreater) |设置过滤方式,true(默认)为大于指定大小,false小于指定大小|

| withFileSize(long size) |设置指定过滤文件大小,如果是500K则输入500*1024|

#### 提供样式

**withIconStyle(int style)** 取值模式:

- Constant.BACKICON_STYLEONE

- Constant.BACKICON_STYLETWO

- Constant.BACKICON_STYLETHREE

**withBackIcon(int backStyle)** 取值模式:

- Constant.ICON_STYLE_YELLOW

- Constant.ICON_STYLE_BLUE

- Constant.ICON_STYLE_GREEN

**withFileFilter(String[] arrs)** 取值模式:

withFileFilter(new String[]{".txt", ".png", ".docx"})

### 详细使用请参考文章:[简书:LFilePicker---文件选择利器,各种样式有它就够了](http://www.jianshu.com/p/eeb211e190be)

### 感谢

- 使用了[AndroidUtilCode][2]中的文件工具类

- 参考了[MaterialFilePicker][3]部分思路

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐