# ImageSelector
**Repository Path**: chinasoft2_ohos/ImageSelector
## Basic Information
- **Project Name**: ImageSelector
- **Description**: 一个功能强大的图片选择器。支持图片的单选、限数量的多选和不限数量的多选。支持图片预览和图片文件夹的切换。支持在选择图片时调用相机拍照,也支持不用打开相册直接调用相机拍照。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 10
- **Forks**: 1
- **Created**: 2021-04-27
- **Last Updated**: 2024-01-10
## Categories & Tags
**Categories**: harmonyos-selector
**Tags**: None
## README
# ImageSelector
#### 项目介绍
- 项目名称:ImageSelector
- 所属系列:OpenHarmony的第三方组件适配移植
- 功能:一个功能强大的图片选择器。支持图片的单选、限数量的多选和不限数量的多选。支持图片预览和图片文件夹的切换。支持在选择图片时调用相机拍照,也支持不用打开相册直接调用相机拍照。
- 项目移植状态:主功能完成
- 调用差异:无
- 开发版本:sdk6,DevEco Studio2.2 Beta1
- 基线版本:Releases 2.2.1
#### 效果演示
#### 安装教程
1.在项目根目录下的build.gradle文件中,
```
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}
}
```
2.在entry模块的build.gradle文件中,
```
dependencies {
implementation('com.gitee.chinasoft_ohos:ImageSelector-imagepicker:1.0.1')
implementation('com.gitee.chinasoft_ohos:ImageSelector-cameralibrary:1.0.1')
implementation('com.gitee.chinasoft_ohos:ImageSelector-ucrop:1.0.1')
......
}
```
在sdk6,DevEco Studio2.2 Beta1下项目可直接运行 如无法运行,删除项目.gradle,.idea,build,gradle,build.gradle文件, 并依据自己的版本创建新项目,将新项目的对应文件复制到根目录下
#### 使用说明
拍照功能和图片选择功能都是作为model库来引用的。
1、在使用前需要申请权限:
```java
// 权限申请
mPermissions.removeIf(perM -> verifySelfPermission(perM) == PERMISSION_GRANTED || !canRequestPermission(perM));
if (!mPermissions.isEmpty()) {
requestPermissionsFromUser(
mPermissions.toArray(new String[mPermissions.size()]), CameraAbility.REQ_PERMISSION_CODE);
}
// 获取权限后的回调
/**
* 权限回调
*
* @param requestCode
* @param ss
* @param grantResults
*/
@Override
public void onRequestPermissionsFromUserResult(int requestCode, String[] ss, int[] grantResults) {
super.onRequestPermissionsFromUserResult(requestCode, ss, grantResults);
if (requestCode != 0) {
choosePic();
return;
}
boolean isHavePermission = false;
for (int num = 0; num < ss.length; num++) {
isHavePermission = grantResults[num] == PERMISSION_GRANTED;
}
if (isHavePermission) {
restart();
}
}
```
2、拍照,图片选择分类,图片裁剪功能的调用:
```java
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
testImplementation 'junit:junit:4.13'
ohosTestImplementation 'com.huawei.ohos.testkit:runner:1.0.0.100'
implementation project(":cameralibrary") // 拍照
implementation project(":imagepicker") 图片选择和分类
implementation project(":ucrop") 图片裁剪
implementation "io.openharmony.tpc.thirdlib:imageloader:1.0.0"
implementation 'io.openharmony.tpc.thirdlib:glide:1.0.3'
}
```
3、拍照布局文件的配置
```xml
```
4、裁剪布局功能的配置。
```java
```
#### 测试信息
CodeCheck代码测试无异常
CloudTest代码测试无异常
病毒安全检测通过
当前版本demo功能与原组件基本无差异
当前版本demo部分功能暂不支持模拟器运行
#### 版本迭代
- 1.0.1