600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 小红书图片剪裁框架+微信图片选择器+超高清大图预览 高级Android程序员必会

小红书图片剪裁框架+微信图片选择器+超高清大图预览 高级Android程序员必会

时间:2019-05-03 16:58:30

相关推荐

小红书图片剪裁框架+微信图片选择器+超高清大图预览 高级Android程序员必会

.setFirstImageUrl(null)//设置上一次选中的图片地址

.setVideoSinglePick(true)//设置视频单选

.setCropPicSaveFilePath(“剪裁图片保存路径”)

.setMaxVideoDuration(2000L)//设置可选取的最大视频时长

.setMinVideoDuration(60000L)//设置视频可选取的最小时长

.pick(this, new OnImagePickCompleteListener() {

@Override

public void onImagePickComplete(ArrayList items) {

//图片剪裁回调,主线程

//注意:剪裁回调里的 ImageItem 中 getCropUrl()才是剪裁过后的图片地址

}

});

预览

支持普通预览和编辑预览,示例如下:

//配置需要预览的所有图片列表

ArrayList allPreviewImageList = new ArrayList<>();

//默认选中的图片索引

int defaultPosition = 0;

//开启编辑预览

ImagePicker.preview(this, new WXImgPickerPresenter(), allPreviewImageList, defaultPosition, new OnImagePickCompleteListener() {

@Override

public void onImagePickComplete(ArrayList items) {

//图片编辑回调,主线程

}

});

拍照

支持直接打开摄像头拍照,示例如下:

ImagePicker.takePhoto(this, “拍照保存路径”, new OnImagePickCompleteListener() {

@Override

public void onImagePickComplete(ArrayList items) {

//拍照回调,主线程

}

});

拍摄视频

支持直接打开摄像头拍视频,示例如下:

ImagePicker.takeVideo(this, “视频保存路径”, new OnImagePickCompleteListener() {

@Override

public void onImagePickComplete(ArrayList items) {

//拍照回调,主线程

}

});

调用选择器并剪裁

支持选择图片完调用剪裁,支持自定义比例剪裁,支持圆形剪裁,示例如下:

ImagePicker.withMulti(new WXImgPickerPresenter())

.mimeType(MimeType.ofImage())

.filterMimeType(MimeType.GIF)

//设置剪裁比例

.setCropRatio(1,1)

.cropSaveFilePath(“剪裁图片保存路径”)

//设置剪裁框间距,单位 px

.cropRectMinMargin(50)

//是否圆形剪裁,圆形剪裁时,setCropRatio 无效

.cropAsCircle()

//设置剪裁模式,留白或充满 CropConfig.STYLE_GAP 或 CropConfig.STYLE_FILL

.cropStyle(CropConfig.STYLE_FILL)

//设置留白模式下生成的图片背景色,支持透明背景

.cropGapBackgroundColor(Color.TRANSPARENT)

.crop(this, new OnImagePickCompleteListener() {

@Override

public void onImagePickComplete(ArrayList items) {

//图片剪裁回调,主线程

}

});

拍照并剪裁

支持直接打开摄像头拍照并剪裁,支持自定义比例剪裁和圆形剪裁,示例如下:

//配置剪裁属性

CropConfig cropConfig = new CropConfig();

//设置剪裁比例

cropConfig.setCropRatio(1, 1);

//设置剪裁框间距,单位 px

cropConfig.setCropRectMargin(100);

cropConfig.setCropSaveFilePath(“剪裁生成的图片路径”);

//是否圆形剪裁,圆形剪裁时,setCropRatio 无效

cropConfig.setCircle(false);

//设置剪裁模式,留白或充满 CropConfig.STYLE_GAP 或 CropConfig.STYLE_FILL

cropConfig.setCropStyle(CropConfig.STYLE_GAP);

//设置留白模式下生成的图片背景色,支持透明背景

cropConfig.setCropGapBackgroundColor(Color.TRANSPARENT );

//调用拍照

ImagePicker.takePhotoAndCrop(this, new WXImgPickerPresenter(), cropConfig,

new OnImagePickCompleteListener() {

@Override

public void onImagePickComplete(ArrayList items) {

//剪裁回调,主线程

}

});

直接剪裁

支持直接跳转剪裁页面,示例如下:

CropConfig cropConfig = new CropConfig();

//设置剪裁比例

cropConfig.setCropRatio(1, 1);

//设置剪裁框间距,单位 px

cropConfig.setCropRectMargin(100);

cropConfig.setCropSaveFilePath(“剪裁生成的图片路径”);

//是否圆形剪裁,圆形剪裁时,setCropRatio 无效

cropConfig.setCircle(false);

//设置剪裁模式,留白或充满 CropConfig.STYLE_GAP 或 CropConfig.STYLE_FILL

cropConfig.setCropStyle(CropConfig.STYLE_GAP);

//设置留白模式下生成的图片背景色,支持透明背景

cropConfig.setCropGapBackgroundColor(Color.TRANSPARENT );

//调用剪裁

String needCropImageUrl=“需要剪裁的图片路径”;

ImagePicker.crop(this, new WXImgPickerPresenter(), cropConfig, needCropImageUrl,

new OnImagePickCompleteListener() {

@Override

public void onImagePickComplete(ArrayList items) {

//剪裁回调,主线程

}

});

提供媒体数据——支持回调相册数据、所有媒体数据、指定相册内媒体数据

获取媒体相册数据

//指定要回调的相册类型,可以指定 13 种图片视频文件格式混合

Set mimeTypes = MimeType.ofAll();

ImagePicker.provideMediaSets(this, mimeTypes, new MediaSetsDataSource.MediaSetProvider() {

@Override

public void providerMediaSets(ArrayList imageSets) {

//相册列表回调,主线程

}

});

获取全部媒体文件

//指定要回调的相册类型,可以指定 13 种图片视频文件格式混合

Set mimeTypes = MimeType.ofAll();

ImagePicker.provideAllMediaItems(this, mimeTypes, new MediaItemsDataSource.MediaItemProvider() {

@Override

public void providerMediaItems(ArrayList imageItems, ImageSet allVideoSet) {

//全部媒体数据回调,主线程

//只有当 mimeTypes 既包含图片或者视频格式文件时,allVideoSet 才有值

}

});

获取指定相册内全部媒体文件

//指定要回调的相册类型,可以指定 13 种图片视频文件格式混合

Set mimeTypes = MimeType.ofAll();

//指定相册,id 不能为空

ImageSet imageSet = new ImageSet();

ImagePicker.provideMediaItemsFromSet(this, imageSet, mimeTypes, new MediaItemsDataSource.MediaItemProvider() {

@Override

public void providerMediaItems(ArrayList imageItems, ImageSet allVideoSet) {

//全部媒体数据回调,主线程

//只有当 mimeTypes 既包含图片或者视频格式文件时,allVideoSet 才有值

}

});

预加载获取指定相册内全部媒体文件

//指定要回调的相册类型,可以指定 13 种图片视频文件格式混合

Set mimeTypes = MimeType.ofAll();

//指定相册,id 不能为空

ImageSet imageSet = new Im

ageSet();

//预加载个数

int preloadSize = 40;

ImagePicker.provideMediaItemsFromSetWithPreload(this, imageSet, mimeTypes, preloadSize,

new MediaItemsDataSource.MediaItemPreloadProvider() {

@Override

public void providerMediaItems(ArrayList imageItems) {

//预加载回调,预先加载指定数目的媒体文件回调

}

},

new MediaItemsDataSource.MediaItemProvider() {

@Override

public void providerMediaItems(ArrayList imageItems, ImageSet allVideoSet) {

//所有媒体文件回调

}

});

presenter 指定、自定义 Item 样式、自定义皮肤 UI、自定义提示常量、设置选择器调用失败回调、自定义回调类型

详细使用方法请查看详细 API 文档

版本记录

查看详细版本记录

2.4.6 版本 [.11.02]

【BUG 修复】修复了红米拍照闪退问题

【BUG 修复】取消了选择器没有文件时直接退出选择器的策略。改为提示语句“暂未发现媒体文件”.

【适配】已适配 AndroidQ,解决 targetSdkVersion 设置 29 时数据库报错的 bug

【新增】新增直接拍摄视频

【新增】presenter 新增 overMaxCountTip、interceptPickerCancel、interceptVideoClick、getPickConstants 四个方法

【新增】新增 PickConstants 用于修改选择器所有文案,在 presenter 中指定

【新增】支持直接回调媒体数据,其中包含回调相册列表、全部媒体文件、指定相册里媒体文件,支持指定数量预加载。

【新增】新增退出选择器时拦截回调,新增点击视频 item 的拦截回调,在 presenter 中指定

【新增】新增视频最小选择时长

【优化】重构了预览页面,将选择器预览和通用预览分离,降低耦合度

【优化】统一整理了资源文件命名,以及删除不必要的资源

【调整】clearAllCache 方法已废弃

【调整】原有的选择器拍照会直接回调出照片,现在改为生成在选择器的第一个

【调整】当选择器只加载视频时,拍照 item 支持拍摄视频,其他情况均为拍照

【优化】选择器调用屏蔽多次点击,调用多次

【优化】所有不可选择的 item(置灰)选中均会有具体的提示

下个版本排期

ickConstants 四个方法

【新增】新增 PickConstants 用于修改选择器所有文案,在 presenter 中指定

【新增】支持直接回调媒体数据,其中包含回调相册列表、全部媒体文件、指定相册里媒体文件,支持指定数量预加载。

【新增】新增退出选择器时拦截回调,新增点击视频 item 的拦截回调,在 presenter 中指定

【新增】新增视频最小选择时长

【优化】重构了预览页面,将选择器预览和通用预览分离,降低耦合度

【优化】统一整理了资源文件命名,以及删除不必要的资源

【调整】clearAllCache 方法已废弃

【调整】原有的选择器拍照会直接回调出照片,现在改为生成在选择器的第一个

【调整】当选择器只加载视频时,拍照 item 支持拍摄视频,其他情况均为拍照

【优化】选择器调用屏蔽多次点击,调用多次

【优化】所有不可选择的 item(置灰)选中均会有具体的提示

下个版本排期

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。