LFilePicker-文件选择利器


LFilePicker

版本已更新至1.7.0,最新功能请查看传送门:
https://github.com/leonHua/LFilePicker

在 Android 开发中如果需要选择某个文件,可以直接调取系统的文件管理器进行选择,但是无法保证各个厂商的手机界面一致,而且解析Uri 还比较繁琐,如果还需要多选呢?需要文件类型过滤呢?老板说界面丑呢?

那么福利来了,你可以使用LFilePicker,它都支持什么呢?

  • 还算漂亮的界面
  • 各种手机一致的体验
  • 多种界面风格
  • 自定义标题文字和颜色
  • 文件多选或者单选
  • 文件类型过滤
  • Fragment启动
  • 国际化(中英文切换)
  • 最大数量限制
  • 全选或者全部取消
  • 文件夹路径选择

在哪里能找到它呢?Bio Bio Bio

传送门:https://github.com/leonHua/LFilePicker

心急的人可以直接根据说明文档进行使用了,任性的人跟着我继续走~
先看看界面,万一丑的不行呢?

![默认界面][1]

好了还算可以把,和经典的Windows风格类似,先用用看吧。怎么用呢?

基础用法

1.添加依赖

compile 'com.leon:lfilepickerlibrary:1.2.0'

【P.S.】 话说为了能够方便的依赖使用可是操碎了心,将项目库开源到JCenter使用的过程中趟了很多坑,如果感兴趣,可以查看文章:新版Bintray下将Android Library 开源到JCenter 的正确姿势

另外,如果网络环境有问题无法正常使用compile指令(像我这样),良心提供 aar 文件下载使用。
下载链接:lfilepickerlibrary
【P.S.】 如果不知道 aar 如何使用,请参考文章:Android中 aar 文件的日常使用

2.添加文件读写权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

3.打开选择界面

你可以在Activity中打开:

new LFilePicker()
            .withActivity(MainActivity.this)
            .withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
            .start();

也可以在Fragment中打开(同时支持v4包SupportFragment):

new LFilePicker().withSupportFragment(mFragment)
                        .withRequestCode(Consant.REQUESTCODE_FROM_FRAGMENT)
                        .withTitle("Open From Fragment")
                        .start();

4.接收选择返回值

重写方法并获取数据:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        if (requestCode == Consant.REQUESTCODE_FROM_ACTIVITY) {
            List<String> list = data.getStringArrayListExtra(Constant.RESULT_INFO);
            Toast.makeText(getApplicationContext(), "选中了" + list.size() + "个文件", Toast.LENGTH_SHORT).show();
        }
    }
}

已经以上你已经能够正常使用了,但是说好的那么多特性呢?接下来,深入一点

自由使用

文件夹和文件图标太low?换!

new LFilePicker()
                .withActivity(this)
                .withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
                .withIconStyle(Constant.ICON_STYLE_YELLOW)
                .start();

withIconStyle(mIconType)提供三种风格:

  • Constant.ICON_STYLE_YELLOW 经典黄(默认风格)
  • Constant.ICON_STYLE_GREEN 清新绿
  • Constant.ICON_STYLE_BLUE 柔和蓝
![清新绿风格][5]
![柔和蓝风格][6]

选择界面标题不合适?换!

  new LFilePicker()
                .withActivity(this)
                .withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
                .withTitle("我的标题")//标题文字
                .withTitleColor("#FF99CC")//文字颜色
                .start();
![标题和文字颜色效果][7]

想要限制单选或者多选?换!

 new LFilePicker()
                .withActivity(this)
                .withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
                .withMutilyMode(true)
                .start();

withMutilyMode(true):true代表多选;false代表单选

![多选效果][8]
![单选效果][9]

想要限制选择文件类型?过滤!

 new LFilePicker()
                .withActivity(this)
                .withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
                .withFileFilter(new String[]{".txt", ".png"})
                .start();
![默认不过滤效果][10]
![过滤后效果][11]

英文怎么搞?已经内置实现!

将手机语言调整为英文后:

![英语环境操作][12]

返回图标不喜欢?换!

new LFilePicker()
                .withActivity(this)
                .withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
                .withBackIcon(Constant.BACKICON_STYLEONE)
                .start();

withBackIcon() 提供三种风格:

  • Constant.BACKICON_STYLEONE
  • Constant.BACKICON_STYLETWO
  • Constant.BACKICON_STYLETHREE
![风格1][13]
![风格2][14]
![风格3][15]

标题背景颜色不喜欢?换!

  new LFilePicker()
                .withActivity(this)
                .withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)
                .withBackgroundColor("#FF9966")
                .start();
![ 背景颜色效果图][16]

切换选择路径?已经包含,随便选!

![路径选择效果][17]

结束

基本上能够满足日常选择文件的需求了,开源不易,如果对你有用,欢迎Star给我一个小小的鼓励!谢谢.

更多文章欢迎访问:我的博客


文章作者:
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 !
 上一篇
一款精致的干货客户端 一款精致的干货客户端
LGank是一款精致的干货客户端下载使用:https://fir.im/lgankGitHub地址 介绍整体设计遵循 Material Design 规范,实现了多种应用常见的效果。包括不局限于: 沉浸式状态栏 有趣的加载动画 滑动关
2017-07-05
下一篇 
LSettingView--- 让你更加快速的实现设置界面 LSettingView--- 让你更加快速的实现设置界面
版本已更新至1.7.0,最新功能请查看传送门:https://github.com/leonHua/LSettingView 在APP开发中,几乎每个应用都会有设置界面。而设置界面每一个条目基本上样式也都是固定的。每次要么去重新写布局
2017-04-05
  目录