Skip to content

1、调用方法说明

FlyJingFish edited this page Jul 3, 2023 · 10 revisions

OpenImage调用说明

/**
 * @param openImageUrls 图片数据组
 * @return
 */
public OpenImage setImageUrlList(List<? extends OpenImageUrl> openImageUrls) {
    return this;
}

/**
 * @param openImageUrl 单个图片数据可设置这个
 * @return
 */
public OpenImage setImageUrl(OpenImageUrl openImageUrl) {
    return setImageUrlList(new ArrayList<>(Arrays.asList(openImageUrl)));
}

/**
 * @param recyclerView         展示数据的RecyclerView
 * @param sourceImageViewIdGet 展示数据的RecyclerView 的图片Id
 * @return
 */
public OpenImage setClickRecyclerView(RecyclerView recyclerView, SourceImageViewIdGet<OpenImageUrl> sourceImageViewIdGet) {
    return this;
}
/**
 * @param viewPager2           展示数据的ViewPager2
 * @param sourceImageViewIdGet 展示数据的ViewPager2 的图片Id
 * @return
 */
public OpenImage setClickViewPager2(ViewPager2 viewPager2, SourceImageViewIdGet<OpenImageUrl> sourceImageViewIdGet) {
    return this;
}

/**
 * @param viewPager          展示数据的ViewPager
 * @param sourceImageViewGet 展示数据的ViewPager 的图片ImageView
 * @return
 */
public OpenImage setClickViewPager(ViewPager viewPager, SourceImageViewGet<OpenImageUrl> sourceImageViewGet) {
    return this;
}
/**
 * @param gridView             展示数据的GridView
 * @param sourceImageViewIdGet 展示数据的GridView 的图片Id
 * @return
 */
public OpenImage setClickGridView(GridView gridView, SourceImageViewIdGet<OpenImageUrl> sourceImageViewIdGet) {
    return this;
}

/**
 * @param listView             展示数据的ListView
 * @param sourceImageViewIdGet 展示数据的ListView 的图片Id
 * @return
 */
public OpenImage setClickListView(ListView listView, SourceImageViewIdGet<OpenImageUrl> sourceImageViewIdGet) {
    return this;
}

/**
 * @param imageViews 自己传展示数据的ImageView组
 * @return
 */
public OpenImage setClickImageViews(ImageView[] imageViews) {
    return setClickImageViews(new ArrayList<>(Arrays.asList(imageViews)));
}

/**
 * @param imageView 自己传展示数据的单个ImageView
 * @return
 */
public OpenImage setClickImageView(ImageView imageView) {
    return setClickImageViews(new ArrayList<>(Arrays.asList(imageView)));
}

/**
 * @param imageViews 自己传展示数据的ImageView组
 * @return
 */
public OpenImage setClickImageViews(List<ImageView> imageViews) {
    return this;
}

/**
 * 如果实在没有可以传的View 可调用这个方法
 * @return
 */
public OpenImage setNoneClickView() {
    return this;
}

/**
 * 支持在网页内点击图片,你需要和网页前端人员对接后才可获得对应的参数
 *
 * @param webView 网页浏览器
 * @param clickViewParam 点击图片或视频在网页内的参数
 * @return {@link OpenImage}
 */
public OpenImage setClickWebView(View webView, ClickViewParam clickViewParam) {
    return this;
}

/**
 * 支持在网页内点击图片,你需要和网页前端人员对接后才可获得对应的参数
 *
 * @param webView 网页浏览器
 * @param clickViewParams  点击图片或视频在网页内的参数
 * @return {@link OpenImage}
 */
public OpenImage setClickWebView(View webView, List<ClickViewParam> clickViewParams) {
    return this;
}

/**
 * 如果数据下标 和 RecyclerView、ViewPager2、ListView、GridView 的所在位置一致 可调用这个
 * @param clickPosition 点击的图片和View所在的位置
 * @return
 */
public OpenImage setClickPosition(int clickPosition) {
    return setClickPosition(clickPosition, clickPosition);
}

/**
 * 如果数据下标 和 RecyclerView、ViewPager2、ListView、GridView 的所在位置不一致 调用这个
 * @param clickDataPosition 点击的图片所在数据的位置
 * @param clickViewPosition 点击的图片View在RecyclerView或ListView或GridView的位置
 * @return
 */
public OpenImage setClickPosition(int clickDataPosition, int clickViewPosition) {
    return this;
}

/**
 * @param srcImageViewScaleType 点击的ImageView显示模式
 * @param autoSetScaleType      如果点击的ImageView与您所设置scaleType不相同,则自动设置
 * @return
 */
public OpenImage setSrcImageViewScaleType(ImageView.ScaleType srcImageViewScaleType, boolean autoSetScaleType) {
    return this;
}
/**
 * 使用OpenImageView时调用这个
 * @param srcImageViewOpenScaleType 点击的OpenImageView显示模式
 * @param autoSetScaleType      如果点击的OpenImageView与您所设置scaleType不相同,则自动设置
 * @return
 */
public OpenImage setSrcImageViewScaleType(OpenImageView.OpenScaleType srcImageViewOpenScaleType, boolean autoSetScaleType) {
    return this;
}


/**
 * <p>加载大图失败后:
 * <ul>
 *  <li>如果设置此选项则展示这个 errorResId 图片
 *  <li>如果不设置
 *      <ul>
 *          <li> 有缓存则 "可能" 展示缓存图片
 *          <li> 没有缓存图片 "可能" 展示上一页面的加载失败图片,"也可能" 没有任何显示
 *      </ul>
 *  </li>
 * </ul>
 * <p> 所以建议设置此项
 * @param errorResId 大图加载失败后显示的图片
 * @return
 */
public OpenImage setErrorResId(@DrawableRes int errorResId) {
    return this;
}



/**
 * @param openImageStyle 查看图片显示设置StyleId
 * @return
 */
public OpenImage setOpenImageStyle(@StyleRes int openImageStyle) {
    return this;
}

/**
 * @param openPageAnimTimeMs 打开页面动画的时间
 * @return
 */
public OpenImage setOpenPageAnimTimeMs(long openPageAnimTimeMs) {
    return this;
}

/**
 *
 * @param onSelectMediaListener 回调查看图片所在数据的位置
 * @return
 */
public OpenImage setOnSelectMediaListener(OnSelectMediaListener onSelectMediaListener) {
    return this;
}

/**
 * 只对传入RecyclerView,ViewPager,ViewPager2, ListView, GridView 有效
 * @param autoScrollScanPosition 自动滑向最后看的图片的位置
 * @return
 */
public OpenImage setAutoScrollScanPosition(boolean autoScrollScanPosition) {
    return this;
}

/**
 *
 * @param pageTransformer ViewPager的页面切换效果
 * @return
 */
public OpenImage addPageTransformer(ViewPager2.PageTransformer... pageTransformer) {
    return this;
}

/**
 *
 * @param leftRightShowWidthDp 可设置画廊效果,左右漏出的宽度,单位dp
 * @return
 */
public OpenImage setGalleryEffect(int leftRightShowWidthDp){
    return this;
}

/**
 *
 * 设置微信补位效果,设置后当退出大图页面时,如果前一页面没有当前图片,则自动回到点击进来的那张图的位置
 * 开启后自动自动滚动效果关闭
 * (只对父容器是RecyclerView, ViewPager2,ListView, GridView 时有效)
 * @param wechatExitFillInEffect 是否设置微信补位效果
 * @return
 */
public OpenImage setWechatExitFillInEffect(boolean wechatExitFillInEffect) {
    return this;
}

设置 setWechatExitFillInEffect true(默认false) 开启效果如下:

 /**
 * 设置点击图片监听
 * @param onItemClickListener
 * @return
 */
public OpenImage setOnItemClickListener(OnItemClickListener onItemClickListener) {
    return this;
}

/**
 * 设置长按图片监听
 * @param onItemLongClickListener
 * @return
 */
public OpenImage setOnItemLongClickListener(OnItemLongClickListener onItemLongClickListener) {
    return this;
}

/**
 * 禁用点击图片关闭页面功能,设置此项后{@link OpenImageConfig#setDisEnableClickClose(boolean)} 就不起作用了
 *
 * @return {@link OpenImage}
 */
public OpenImage disableClickClose() {
    disableClickClose = true;
    return this;
}

/**
 * 开始点击图片关闭页面功能,设置此项后{@link OpenImageConfig#setDisEnableClickClose(boolean)} 就不起作用了
 *
 * @return {@link OpenImage}
 */
public OpenImage enableClickClose() {
    disableClickClose = false;
    return this;
}

/**
 * 添加View 到大图页面,此方法可多次调用,添加多个View
 *
 * @param layoutRes                添加的布局xml id
 * @param layoutParams             要添加到页面布局的参数
 * @param moreViewShowType         展示类型
 * @param onLoadViewFinishListener 加载完毕View后回调
 * @return
 */
public OpenImage addMoreView(@LayoutRes int layoutRes, @NonNull FrameLayout.LayoutParams layoutParams, MoreViewShowType moreViewShowType, OnLoadViewFinishListener onLoadViewFinishListener) {
    return addMoreView(layoutRes, layoutParams, moreViewShowType, false, onLoadViewFinishListener);
}

/**
 * 添加View 到大图页面,此方法可多次调用,添加多个View
 *
 * @param layoutView       添加的View
 * @param layoutParams     要添加到页面布局的参数
 * @param moreViewShowType 展示类型
 * @return
 */
public OpenImage addMoreView(View layoutView, @NonNull FrameLayout.LayoutParams layoutParams, MoreViewShowType moreViewShowType) {
    return addMoreView(layoutView, layoutParams, moreViewShowType, false);
}

/**
 * @param layoutRes                添加的布局xml id
 * @param layoutParams             要添加到页面布局的参数
 * @param moreViewShowType         展示类型
 * @param followTouch              是否跟随图片拖动
 * @param onLoadViewFinishListener 加载完毕View后回调
 * @return
 */
public OpenImage addMoreView(@LayoutRes int layoutRes, @NonNull FrameLayout.LayoutParams layoutParams, MoreViewShowType moreViewShowType, boolean followTouch, OnLoadViewFinishListener onLoadViewFinishListener) {
    return this;
}

/**
 * @param layoutView       添加的View
 * @param layoutParams     要添加到页面布局的参数
 * @param moreViewShowType 展示类型
 * @param followTouch      是否跟随图片拖动
 * @return
 */
public OpenImage addMoreView(View layoutView, @NonNull FrameLayout.LayoutParams layoutParams, MoreViewShowType moreViewShowType, boolean followTouch) {
    return this;
}

/**
 * @param showSrcImageView 退出时,前一页面的ImageView是否可见
 * @return
 */
public OpenImage setShowSrcImageView(boolean showSrcImageView) {
    return this;
}

设置 setShowSrcImageView false(默认true) 开启效果如下:

/**
 * 调用这个方法将使 OpenImageConfig 的配置失效
 * @param imageFragmentCreate 用于自定义图片展示页面
 * @return
 */
public OpenImage setImageFragmentCreate(ImageFragmentCreate imageFragmentCreate) {
    return this;
}

/**
 * 调用这个方法将使 OpenImageConfig 的配置失效
 * @param videoFragmentCreate 用于自定义视频展示页面
 * @return
 */
public OpenImage setVideoFragmentCreate(VideoFragmentCreate videoFragmentCreate) {
    return this;
}

/**
 * 这是可以显示在页面上方的Fragment
 * @param upperLayerFragmentCreate 用于创建覆盖在页面上方的Fragment
 * @param bundle 传入数据
 * @return
 */
public OpenImage setUpperLayerFragmentCreate(UpperLayerFragmentCreate upperLayerFragmentCreate,Bundle bundle) {
    return setUpperLayerFragmentCreate(upperLayerFragmentCreate, bundle, false);
}

/**
 *
 * 这是可以显示在页面上方的Fragment
 * @param upperLayerFragmentCreate 用于创建覆盖在页面上方的Fragment
 * @param bundle 传入数据
 * @param followTouch 是否跟随拖动
 * @return
 */
public OpenImage setUpperLayerFragmentCreate(UpperLayerFragmentCreate upperLayerFragmentCreate,Bundle bundle, boolean followTouch) {
    return this;
}

/**
 * @param upperLayerFragmentCreate 用于创建覆盖在页面上方的Fragment
 * @param bundle                   传入数据
 * @param followTouch              是否跟随拖动
 * @param touchingHide             拖动图片时是否隐藏Fragment页面
 * @return {@link OpenImage}
 */
public OpenImage setUpperLayerFragmentCreate(UpperLayerFragmentCreate upperLayerFragmentCreate, Bundle bundle, boolean followTouch, boolean touchingHide) {
    return this;
}

/**
 * 如果以上定义页面样式的方法还不够用,可继承 ViewPagerActivity 页面自己去写页面
 * @param openImageActivityCls 自己定义的大图页面
 * @return
 */
public OpenImage setOpenImageActivityCls(Class<?> openImageActivityCls) {
    return this;
}

/**
 * 如果以上定义页面样式的方法还不够用,可继承 ViewPagerActivity 页面自己去写页面
 * @param openImageActivityCls 自己定义的大图页面
 * @param bundleKey 传给页面的数据 key [ bundle = getIntent().getBundleExtra(bundleKey) ]
 * @param bundle 传给页面的数据
 * @return
 */
public OpenImage setOpenImageActivityCls(Class<?> openImageActivityCls,String bundleKey,Bundle bundle) {
    return this;
}
/**
 * 如果以上定义页面样式的方法还不够用,可继承 OpenImageActivity 页面自己去写页面
 *
 * @param openImageActivityCls 自己定义的大图页面,必须继承 {@link OpenImageActivity}
 * @param onUpdateViewListener 如果您想在大图页面加载更多数据并且更新前一页面的列表,那么你可传入此接口
 * @return {@link OpenImage}
 */
public OpenImage setOpenImageActivityCls(@NonNull Class<? extends OpenImageActivity> openImageActivityCls,OnUpdateViewListener onUpdateViewListener) {
    return this;
}

/**
 * 如果以上定义页面样式的方法还不够用,可继承 OpenImageActivity 页面自己去写页面
 *
 * @param openImageActivityCls 自己定义的大图页面,必须继承 {@link OpenImageActivity}
 * @param bundleKey            传给页面的数据 key [ bundle = getIntent().getBundleExtra(bundleKey) ]
 * @param bundle               传给页面的数据
 * @param onUpdateViewListener 如果您想在大图页面加载更多数据并且更新前一页面的列表,那么你可传入此接口
 * @return {@link OpenImage}
 */
public OpenImage setOpenImageActivityCls(@NonNull Class<? extends OpenImageActivity> openImageActivityCls, String bundleKey, Bundle bundle,@Nullable OnUpdateViewListener onUpdateViewListener) {
    return this;
}
/**
 * 如果你想让圆图和矩形圆角图在打开关闭时追求更细腻的体验可以设置这个
 *
 * @param shapeType 图片类型
 * @param rectangleConnerRadius 如果是矩形圆角图,设置这个为圆角角度
 * @return
 */
public OpenImage setImageShapeParams(ImageShapeType shapeType, RectangleConnerRadius rectangleConnerRadius) {
    return this;
}

/**
 * 如果你需要监听大图退出复位的时刻不妨调用这个
 *
 * @param onExitListener 退出复位监听
 */
public OpenImage setOnExitListener(OnExitListener onExitListener) {
    this.onExitListener = onExitListener;
    return this;
}

/**
 * 设置显示下载按钮
 */
public OpenImage setShowDownload() {
    return setShowDownload(null);
}

/**
 * 设置显示下载按钮
 * @param downloadParams 下载按钮相关参数{@link DownloadParams}
 */
public OpenImage setShowDownload(DownloadParams downloadParams) {
    this.showDownload = true;
    this.downloadParams = downloadParams;
    return this;
}

/**
 * 设置显示关闭按钮
 */
public OpenImage setShowClose() {
    return setShowClose(new CloseParams());
}

/**
 * 设置显示关闭按钮
 * @param closeParams 关闭按钮相关参数{@link CloseParams}
 */
public OpenImage setShowClose(CloseParams closeParams) {
    this.showClose = true;
    this.closeParams = closeParams;
    return this;
}

/**
 * 禁用下拉触摸关闭页面功能,设置此项后{@link OpenImageConfig#setDisEnableTouchClose(boolean)} (boolean)} 就不起作用了
 *
 * @return {@link OpenImage}
 */
public OpenImage disableTouchClose() {
    disableTouchClose = true;
    return this;
}

/**
 * 启用下拉触摸关闭页面功能
 *
 * @return {@link OpenImage},设置此项后{@link OpenImageConfig#setDisEnableTouchClose(boolean)} 就不起作用了
 */
public OpenImage enableTouchClose() {
    disableTouchClose = false;
    return this;
}

/**
 * 自定义权限申请
 * @param onPermissionsInterceptListener
 */
public OpenImage setOnPermissionsInterceptListener(OnPermissionsInterceptListener onPermissionsInterceptListener) {
    return this;
}

/**
 * 局部设置预加载个数,可通过{@link OpenImageConfig#setPreloadCount(boolean, int)}全局设置,设置此参数全局设置在此次调用中暂时失效<br>
 * 打开预加载,对于图片来说可以提前加载出来,对于视频来说可以拥有切换秒播的效果<br>
 *
 * <p>不设置时,默认是
 * <ul>
 *  <li>如果你用的是 「OpenImageLib」 或 「OpenImageGlideLib」默认是 lazyPreload = true , preloadCount = 1
 *  <li>如果你用的是 「OpenImageFullLib」默认是 lazyPreload = false , preloadCount = 4
 * </ul>
 * @param lazyPreload 是否懒加载 true 的话打开页面时不会预加载,滑动一个时才开始预加载;false的话打开页面时就开始预加载
 * @param preloadCount 预加载个数,对应于{@link androidx.viewpager2.widget.ViewPager2#setOffscreenPageLimit(int)}
 */
public OpenImage setPreloadCount(boolean lazyPreload,@IntRange(from = 1) int preloadCount) {
    return this;
}

/**
 * 局部设置关闭预加载,可通过{@link OpenImageConfig#closePreload()}全局设置,设置此参数全局设置在此次调用中暂时失效<br>
 * 关闭预加载,关闭后不会预加载,页面回收会更频繁
 */
public OpenImage closePreload() {
    return this;
}

/**
 * 打开大图页面
 */
public void show() {
}

OpenImageConfig设置(以下设置全部为全局设置,部分设置可在OpenImage中局部设置)

OpenImageConfig.getInstance().setReadMode();//是否打开大图阅读模式

OpenImageConfig.getInstance().setReadModeRule();//大图识别比例

OpenImageConfig.getInstance().setDisEnableTouchClose();//是否关闭拖动关闭功能

OpenImageConfig.getInstance().setTouchCloseScale();//拖动关闭百分比

OpenImageConfig.getInstance().setImageFragmentCreate();//设置全局图片页面

OpenImageConfig.getInstance().setVideoFragmentCreate();//设置全局视频页面

OpenImageConfig.getInstance().setBigImageHelper();//设置大图加载器,全局设置一次即可

OpenImageConfig.getInstance().setPreloadCount();//设置预加载个数相关配置

OpenImageConfig.getInstance().closePreload();//全局设置关闭预加载
Clone this wiki locally