# AndroidFilePicker
本项目是基于开源项目rosuH/AndroidFilePicker进行适用OHOS的移植和开发的,
可通过github地址https://github.com/rosuH/AndroidFilePicker 追踪到原项目
移植版本: 0.7.1
它没有像 Rocky,Cosmos 或是 Peppa 这样的名字。 File Picker 正如其名,是一个本地文件选择器框架。 他的一些特征如下所述:
- 在 `Ability` 或 `Slice` 中启动
- 从一行代码开始
- 浏览当前应用本地存储中的所有文件(因鸿蒙沙盒设计,仅支持浏览自身应用目录下的所以文件)
- 内置默认文件类型和文件鉴别器
- 或者您可以自己实现文件类型
- 内置了单选模式和多选模式
- 自定义列表过滤器
- 只想显示图片(或视频,音频......)? 没问题!
- 当然,您也可只显示文件夹
- 还有更多待您自己探索的特性(?)
## 下载使用
1. 在你的项目中添加依赖
然后在子模块(`app`)的配置文件添加依赖:
```xml
dependencies {
implementation 'com.gitee.ts_ohos:filepicker:1.0.1'
}
```
## 使用
### 权限
此库需要一个权限:
- `ohos.permission.READ_USER_STORAGE`
如果您没有提前授予,这个库会自动申请该权限的。
### 开始使用
简单的链式调用示意:
```java
FilePickerManager.INSTANCE()
.from(HomeAbilitySlice.this)
.forResult(FilePickerManager.REQUEST_CODE);
```
现在你已经起飞了🛩️...(真的只有两行)
### 获取结果
*获取结果*:`onAbilityResult`接受消息,然后调用`FilePickerManager.INSTANCE().obtainData()`获取保存的数据,**结果是所选取文件的路径列表(`ArrayList<String>()`)**
```java
@Override
protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) {
super.onAbilityResult(requestCode, resultCode, resultData);
switch (requestCode) {
case FilePickerManager.REQUEST_CODE:
if (resultCode == FilePickerManager.RESULT_OK) {
List<String> strings = FilePickerManager.INSTANCE().obtainData();
//do your work
}
break;
}
}
```
### 更多示例
可以参考`HomeAbilitySlice.java`中提供的示例代码
## 功能 & 特点
1. 链式调用
2. 默认选中实现
- 点击条目(`item`)无默认实现
- 点击`CheckBox`为选中
3. 默认实现多种文件类型
- 实现`IFileType`接口来实现你的文件类型
- 实现`AbstractFileType`抽象类来实现你的文件类型甄别器
4. 公开文件过滤接口
- 实现`AbstractFileFilter`抽象类来定制你自己的文件过滤器,这样可以控制文件列表的展示内容
5. 多种可配置选项
1. 选中时是否忽略文件夹
2. 是否显示隐藏文件夹(以符号`.`开头的,视为隐藏文件或隐藏文件夹)
# License
```
MIT License
Copyright (c) 2018
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
没有合适的资源?快使用搜索试试~ 我知道了~
file-picker-master.zip
共138个文件
java:54个
xml:42个
png:19个
需积分: 5 0 下载量 104 浏览量
2022-10-08
16:37:24
上传
评论
收藏 186KB ZIP 举报
温馨提示
一个本地文件选择器框架。
资源详情
资源评论
资源推荐
收起资源包目录
file-picker-master.zip (138个子文件)
gradlew.bat 3KB
.gitignore 247B
.gitignore 7B
.gitignore 7B
build.gradle 813B
build.gradle 769B
build.gradle 633B
settings.gradle 32B
gradlew 5KB
gradle-wrapper.jar 57KB
FilePickerAbilitySlice.java 20KB
FileListAdapter.java 14KB
FilePickerConfig.java 12KB
HomeAbilitySlice.java 12KB
FileUtils.java 7KB
ImageUtil.java 5KB
FileUtil.java 4KB
ThreadPoolUtil.java 3KB
RecyclerViewFilePicker.java 3KB
FilePickerManager.java 3KB
FileNavAdapter.java 3KB
DefaultFileDetector.java 3KB
RecyclerViewListener.java 2KB
PermissionCheck.java 2KB
ImageLoadController.java 2KB
GlideEngine.java 2KB
SampleProvider.java 2KB
LcFileAdapter.java 1KB
FileItemBeanImpl.java 1KB
AbstractFileDetector.java 1KB
FileItemOnClickListenerImpl.java 1KB
VideoFileType.java 1KB
DataFileType.java 1018B
WebFileType.java 996B
RasterImageFileType.java 995B
AudioFileType.java 980B
TextFileType.java 931B
CompressedFileType.java 927B
ExecutableFileType.java 899B
ToastUtil.java 852B
LogUtils.java 839B
DataBaseFileType.java 821B
FontFileType.java 759B
PageLayoutFileType.java 751B
FileBean.java 720B
FileModel.java 625B
AbstractFileFilter.java 618B
FileItemOnClickListener.java 598B
SimpleItemClickListener.java 570B
FilePickerAbility.java 551B
FileType.java 540B
PicassoEngine.java 492B
BaseAdapter.java 440B
ExampleOhosTest.java 424B
MainAbility.java 388B
MainUiHandler.java 366B
ImageEngine.java 303B
MyApplication.java 239B
FileNavBeanImpl.java 227B
UiHandler.java 163B
ExampleTest.java 134B
ExampleTest.java 134B
BeanSubscriber.java 120B
ViewHolder.java 73B
config.json 1KB
string.json 1KB
string.json 1KB
config.json 1013B
config.json 894B
colors.json 293B
string.json 191B
LICENSE 11KB
README.md 4KB
icon.png 7KB
icon.png 7KB
ic_radio_check_on.png 2KB
ic_radio_check_off.png 2KB
ic_html_file_picker.png 2KB
ic_unknown_file_picker.png 1KB
ic_pdf_file_picker.png 1KB
ic_image_file_picker.png 1KB
ic_image_file.png 1KB
ic_music_file_picker.png 1KB
ic_compressed_file_picker.png 970B
ic_video_file_picker.png 955B
pic_dir.png 807B
ic_exec_file_picker.png 757B
ic_folder_file_picker.png 693B
pic_file.png 655B
pic_back.png 611B
checkbox_selected.png 451B
checkbox_unselected.png 266B
proguard-rules.pro 45B
proguard-rules.pro 45B
gradle.properties 549B
gradle-wrapper.properties 194B
ability_home.xml 6KB
ic_unknown_file_picker.xml 4KB
ic_exec_file_picker.xml 3KB
ability_file_picker.xml 3KB
共 138 条
- 1
- 2
智慧浩海
- 粉丝: 1w+
- 资源: 5145
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0