android pick file,LFilePicker---文件选择利器,各种样式有它就够了

eeb211e190be

LFilePicker

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

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

还算漂亮的界面

各种手机一致的体验

多种界面风格

自定义标题文字和颜色

文件多选或者单选

文件类型过滤

Fragment启动

国际化(中英文切换)

文件数量限制

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

心急的人可以直接根据说明文档进行使用了,任性的人跟着我继续走~~~

先看看界面,万一丑的不行呢?

1

默认界面

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

基础用法

1.添加依赖

compile 'com.leon:lfilepickerlibrary:1.3.0'

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

另外,如果网络环境有问题无法正常使用compile指令(像我这样),良心提供 aar 文件下载使用。

下载链接:lfilepickerlibrary

【P.S.】 如果不知道 aar 如何使用,请参考文章:Android中 aar 文件的日常使用

2.添加文件读写权限

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 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 柔和蓝

1

清新绿风格

1

柔和蓝风格

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

new LFilePicker()

.withActivity(this)

.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)

.withTitle("我的标题")//标题文字

.withTitleColor("#FF99CC")//文字颜色

.start();

1

标题和文字颜色效果

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

new LFilePicker()

.withActivity(this)

.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)

.withMutilyMode(true)

.start();

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

1

多选效果

1

单选效果

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

new LFilePicker()

.withActivity(this)

.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)

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

.start();

1

默认不过滤效果

1

过滤后效果

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

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

1

英语环境操作

返回图标不喜欢?换!

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

风格1

1

风格2

1

风格3

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

new LFilePicker()

.withActivity(this)

.withRequestCode(Consant.REQUESTCODE_FROM_ACTIVITY)

.withBackgroundColor("#FF9966")

.start();

1

背景颜色效果图

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

1

路径选择效果

结束

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/370061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

老笔记整理二:网页小问题汇总

最近有一些小问题。想在这里写出来。一是方便大家排错,再是自己也整理一下。 1。很傻的小问题。。。参数提交方式有一个应该是form而不是from。(英语老师,我对不起你。。。) 2。用超链接传参数,在?后面不能…

在JVM之下–类加载器

在许多开发人员中,类加载器是Java语言的底层,并且经常被忽略。 在ZeroTurnaround上 ,我们的开发人员必须生活,呼吸,饮食,喝酒,并且几乎与类加载器保持亲密关系,才能生产JRebel技术&a…

matplotlib绘制饼状图

源自http://blog.csdn.net/skyli114/article/details/77508430?ticketST-41707-PzNbUDGt6R5KYl3TkWDg-passport.csdn.net pyplot使用plt.pie()来绘制饼图 1 import matplotlib.pyplot as plt 2 labels frogs, hogs, dogs, logs 3 sizes 15, 20, 45, 10 # [15,20,45,10…

自适应宽度元素单行文本省略用法探究

单行文本省略是现代网页设计中非常常用的技术,几乎每个站点都会用到。单行文本省略适用于显示摘要信息的场景,如列表标题、文章摘要等。在响应式开发中,自适应宽度元素单行文本省略容易失效不起作用,对网页开发这造成困扰。因此&a…

P3390 【模板】矩阵快速幂

题目背景 矩阵快速幂 题目描述 给定n*n的矩阵A,求A^k 输入输出格式 输入格式: 第一行,n,k 第2至n1行,每行n个数,第i1行第j个数表示矩阵第i行第j列的元素 输出格式: 输出A^k 共n行,每行n个数&…

c#精彩编程200例百度云_永安市教育局被授予“人工智能编程教育试验区”

11月28日,“第二届人工智能与机器人教育大会青少年人工智能与编程教育主题论坛”在厦门召开。永安市教育局被中国教育发展战略学会人工智能与机器人教育专委会授予“人工智能编程教育试验区”牌匾,巴溪湾小学、西门小学、三中、一中附属学校、实验小学等…

python中+=和=+的区别

本文原创,版权属作者个人所有,如需转载请联系作者本人。Q&微:155122733 -------------------------------------------------------------------------------------------------------- a1 代表在原值上更改 aa1相当于先定义一个变量&…

Spring Data JPA和分页

让我们从支持分页的经典JPA方法开始。 考虑一个简单的域类–一个具有名字,姓氏的“成员”。 为了支持在成员列表上进行分页,JPA方法是支持一种查找器,该查找器将获取第一个结果(firstResult)的偏移量和要检索的结果&am…

南阳理工 题目63 小猴子下落

小猴子下落 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,,2的D次方减1。在结点1处放一个小猴子&#…

vue 方法获取返回值_vue.js - vuex异步提交,怎么获取返回数据

问 题 做登录页面时,在vuex中的action异步提交后获取的数据在mutations中存储在state里面,但是总感觉不对,没有返回数据,我前端页面怎么获取数据,用mapgetter获取不到数据,是不是他不是实时更新的,而且输出的mapgetter输出的数据还在action的前面。下面是我前端部分代码…

Windows环境下安装、卸载Apache

安装Apache 服务 打开 Apcahe的目录 ,打开bin目录, 如:E:\wamp\Apache24\bin ,打开目录,Shift键 鼠标右键 , 点击 在此处打开命令窗口或者W快捷键直接到此处, 也可以Window键r,输入…

css清浮动

我们在平常做项目的时候,float这个css属性经常会用到。元素浮动会让元素脱离文档流,从而不能撑开父级的内容。今天我将展示常见的清除浮动的方法。 什么是浮动 浮动元素脱离文档流并且向左或者向右移动,直到浮动元素的边缘碰到父级框或者另…

小心缓存管理器

如果使用spring和JPA,则很有可能利用ehcache(或其他缓存提供程序)。 您可以在两种不同的情况下进行此操作:JPA 2级缓存和spring方法缓存。 在配置应用程序时,通常会设置JPA提供程序的二级缓存提供程序(在我…

DirectX11 学习笔记7 - 支持自由移动的摄像机

如今将又一次制定一个camera摄像机。能够自由移动。比方前进 后退,上游 下潜。 各个方向渲染之类的。 首先设置按键。 这个时候须要在 XWindow.h 里面 bool XWindow::frame() {//推断是否按下ESC键if(x_input->isKeyDown(VK_ESCAPE))return false;//假设A,S,D,W,…

腾讯吃鸡 android,腾讯吃鸡手游《光荣使命》正式上线:安卓/iOS不限号测试

IT之家11月29日消息 今天下午,腾讯首款百人战术竞技手游《光荣使命》在安卓、iOS双平台正式上线,开启全面测试。(官网下载:点此链接,双平台已开放下载。)该游戏采用第三人称射击视角,玩家化身参与“使命行动”军事演习…

lazada铺货模式的选品_lazada小白的运营难点→铺货与精细化运营的优劣势详解

lazada是铺货还是精细化经营第一种铺货铺货作为平台早期都是比较受欢迎的,平台的蛮荒期,成长期当中,铺货的商家是非常受欢迎的,因为平台需要更多SKU产品,去吸引买家,铺货这个时候是最好的也是能最快的成长起…

ife 零基础学院 day 2

第二天:给自己做一个在线简历吧 最后的验证,提出了几个问题,尝试解答一下 HTML是什么,HTML5是什么 HTML的定义摘抄自w3school的HTML 简介 HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言 (Hyper Text Markup Langua…

excel数据生成sql insert语句

excel数据生成sql insert语句 excel表格中有A、B、C三列数据,希望导入到数据库users表中,对应的字段分别是name,sex,age 。 在你的excel表格中增加一列,利用excel的公式自动生成sql语句,方法如下: 1、增加一列&#xf…

Java中的推断异常

借用和窃取其他语言的概念和想法总是很高兴的。 Scala的Option是我真正喜欢的一个主意,因此我用Java编写了一个实现。 它包装了一个可能为null或不为null的对象,并提供了一些可按某种功能使用的方法。 例如,isDefined方法添加了一种面向对象的…

重载,覆盖,隐藏

转载于:https://www.cnblogs.com/jhcelue/p/7145525.html