public interface IPickerPresenter
extends java.io.Serializable
实现该接口可快速定制属于你自己的选择器样式。该接口支持如下操作:
1.自定义图片加载逻辑和框架 2.自定义选择器所有ui样式 3.自定义提示 4.自定义超出最大选择数量的提示 5.自定义媒体库扫描和剪裁的加载框loading 6.自定义选择器完成按钮点击事件的拦截 7.拦截选择器取消操作,用于弹出二次确认框 8.图片点击事件拦截,如果返回true,则不会执行选中操纵,如果要拦截此事件并且要执行选中 9.拍照点击事件拦截
| 限定符和类型 | 方法和说明 |
|---|---|
void |
displayImage(android.view.View view,
ImageItem item,
int size,
boolean isThumbnail)
图片加载,在安卓10上,外部存储的图片路径只能用Uri加载,私有目录的图片可以用绝对路径加载
所以这个方法务必需要区分有uri和无uri的情况
一般媒体库直接扫描出来的图片是含有uri的,而剪裁生成的图片保存在私有目录中,因此没有uri,只有绝对路径
所以这里需要做一个兼容处理,例如如下代码:
if (item.getUri() !
|
PickerUiConfig |
getUiConfig(android.content.Context context)
设置自定义ui显示样式
该方法返回一个PickerUiConfig对象
该对象可以配置如下信息:
1.主题色
2.相关页面背景色
3.选择器标题栏,底部栏,item,文件夹列表item,预览页面,剪裁页面的定制
详细使用方法参考 (@link https://github.com/yangpeixing/YImagePicker/blob/master/YPX_ImagePicker_androidx/app/src/main/java/com/ypx/imagepickerdemo/style/WeChatPresenter.java)
|
boolean |
interceptCameraClick(android.app.Activity activity,
ICameraExecutor takePhoto)
拍照点击事件拦截
|
boolean |
interceptItemClick(android.app.Activity activity,
ImageItem imageItem,
java.util.ArrayList<ImageItem> selectImageList,
java.util.ArrayList<ImageItem> allSetImageList,
BaseSelectConfig selectConfig,
PickerItemAdapter adapter,
boolean isClickCheckBox,
IReloadExecutor reloadExecutor)
图片点击事件拦截,如果返回true,则不会执行选中操纵,如果要拦截此事件并且要执行选中
请调用如下代码:
adapter.preformCheckItem()
此方法可以用来跳转到任意一个页面,比如自定义的预览
|
boolean |
interceptPickerCancel(android.app.Activity activity,
java.util.ArrayList<ImageItem> selectedList)
拦截选择器取消操作,用于弹出二次确认框
|
boolean |
interceptPickerCompleteClick(android.app.Activity activity,
java.util.ArrayList<ImageItem> selectedList,
BaseSelectConfig selectConfig)
拦截选择器完成按钮点击事件
|
void |
overMaxCountTip(android.content.Context context,
int maxCount)
选择超过数量限制提示
|
android.content.DialogInterface |
showProgressDialog(android.app.Activity activity,
ProgressSceneEnum progressSceneEnum)
显示loading加载框,注意需要调用show方法
|
void |
tip(android.content.Context context,
java.lang.String msg)
提示
|
void displayImage(android.view.View view,
ImageItem item,
int size,
boolean isThumbnail)
if (item.getUri() != null) { Glide.with(view.getContext()).load(item.getUri().into((ImageView) view); } else { Glide.with(view.getContext()).load(item.path).into((ImageView) view); }
view - imageViewitem - 图片信息size - 加载尺寸isThumbnail - 是否是缩略图PickerUiConfig getUiConfig(android.content.Context context)
该对象可以配置如下信息: 1.主题色 2.相关页面背景色 3.选择器标题栏,底部栏,item,文件夹列表item,预览页面,剪裁页面的定制
详细使用方法参考 (@link https://github.com/yangpeixing/YImagePicker/blob/master/YPX_ImagePicker_androidx/app/src/main/java/com/ypx/imagepickerdemo/style/WeChatPresenter.java)
context - 上下文void tip(android.content.Context context,
java.lang.String msg)
context - 上下文msg - 提示文本void overMaxCountTip(android.content.Context context,
int maxCount)
context - 上下文maxCount - 最大数量android.content.DialogInterface showProgressDialog(android.app.Activity activity,
ProgressSceneEnum progressSceneEnum)
activity - 启动加载框的activityprogressSceneEnum - ProgressSceneEnum
当progressSceneEnum==当ProgressSceneEnum.loadMediaItem 时,代表在加载媒体文件时显示加载框 目前框架内规定,当文件夹内媒体文件少于1000时,强制不显示加载框,大于1000时才会执行此方法
当progressSceneEnum==当ProgressSceneEnum.crop 时,代表是剪裁页面的加载框
boolean interceptPickerCompleteClick(android.app.Activity activity,
java.util.ArrayList<ImageItem> selectedList,
BaseSelectConfig selectConfig)
activity - 当前选择器activityselectedList - 已选中的列表boolean interceptPickerCancel(android.app.Activity activity,
java.util.ArrayList<ImageItem> selectedList)
activity - 当前选择器页面selectedList - 当前已经选择的文件列表boolean interceptItemClick(android.app.Activity activity,
ImageItem imageItem,
java.util.ArrayList<ImageItem> selectImageList,
java.util.ArrayList<ImageItem> allSetImageList,
BaseSelectConfig selectConfig,
PickerItemAdapter adapter,
boolean isClickCheckBox,
IReloadExecutor reloadExecutor)
图片点击事件拦截,如果返回true,则不会执行选中操纵,如果要拦截此事件并且要执行选中 请调用如下代码:
adapter.preformCheckItem()
此方法可以用来跳转到任意一个页面,比如自定义的预览
activity - 上下文imageItem - 当前图片selectImageList - 当前选中列表allSetImageList - 当前文件夹所有图片selectConfig - 选择器配置项,如果是微信样式,则selectConfig继承自MultiSelectConfig
如果是小红书剪裁样式,则继承自CropSelectConfigadapter - 当前列表适配器,用于刷新数据isClickCheckBox - 是否点击item右上角的选中框reloadExecutor - 刷新器boolean interceptCameraClick(android.app.Activity activity,
ICameraExecutor takePhoto)
activity - 当前activitytakePhoto - 拍照接口