# 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