鸿蒙开源三方组件(imagepicker)--图片选择器 精华
wx5b1f373d06a02
发布于 2021-7-27 13:30
浏览
2收藏
1. 介绍
imagepicker是一款用于在设备上获取照片(拍照或从相册、文件中选择)、压缩图片的开源工具库。从相册里面选择图片或者拍照获取照片、浏览选择的本地或者网络图片、保存图片。
2. 效果展示
3. 依赖
(1). 在工程的build.gradle的allprojects中,添加HAR所在的Maven仓地址
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}
(2). 在应用模块的build.gradle的dependencies闭包中,添加如下代码:
dependencies {
implementation 'io.github.dzsf:imagepicker:1.0.0'
}
4. 使用说明
(1). 拍照或者从图库选择图片
//获取单例,调用下面方法即可,具体可参考源码sample
ImagePickerInstance.getInstance()
/**
* 对外图库选择图片,或者拍照选择图片方法
* @param abilitySlice
* @param limit 选择图片张数
* @param isShowCamera 是否支持拍照
* @param requestCode
*/
public void photoSelect(AbilitySlice abilitySlice, int limit, boolean isShowCamera, int requestCode) {
Intent intent = new Intent();
intent.setParam(LIMIT, limit);
intent.setParam(IS_SHOW_CAMERA, false);
Operation operation = new Intent.OperationBuilder()
.withDeviceId("")
.withBundleName(abilitySlice.getBundleName())
.withAbilityName(PhotoSelectorAbility.class)
.build();
intent.setOperation(operation);
abilitySlice.startAbilityForResult(intent, requestCode);
}
(2). 获取拍照或者图片地址
@Override
protected void onAbilityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST_CODE) {
if (resultCode == -1) {
PhotoModel photoModel = new PhotoModel();
try {
photoModel.setOriginalPath(takeImageFile.getCanonicalPath());
} catch (IOException e) {
e.printStackTrace();
}
selected.clear();
selected.add(photoModel);
ok();
}
}
}
(3). 浏览图片
//获取单例,调用下面方法即可,具体可参考源码sample
ImagePickerInstance.getInstance()
/**
* 对外开放的图片预览方法
* @param context
* @param tempList 浏览图片集合,注意!必须封装成imagepicker的bean,url支持网络或者本地
* @param position 角标
* @param isSave 是否支持保存
*/
public void photoPreview(Context context, ArrayList<PhotoModel> tempList, int position, boolean isSave) {
Intent intent = new Intent();
intent.setSequenceableArrayListParam(PHOTOS, tempList);
intent.setParam(POSITION, position);
intent.setParam(IS_SAVE, isSave);
Operation operation = new Intent.OperationBuilder()
.withDeviceId("")
.withBundleName(context.getBundleName())
.withAbilityName(PhotoPreviewAbility.class)
.build();
intent.setOperation(operation);
context.startAbility(intent, 0);
}
(4). 保存图片
网络图片点击保存时,默认保存到内存卡,imagepicker文件夹下
5. 相关资料
项目地址:https://gitee.com/openneusoft/imagepicker
IDE官方下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio
标签
已于2021-7-27 13:33:37修改
赞
3
收藏 2
回复
相关推荐
丁,感谢老师提供
gooood
您好,通过您的4.1中的此方法
获取到的是本机带有ability的相对路径的图片,请问有没有办法获取到绝对路径呢?应该怎么去写代码呢。