Skip to content

1、调用方法说明

FlyJingFish edited this page May 23, 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;
}

/**
 * 禁用点击图片关闭页面功能
 * @return
 */
public OpenImage disableClickClose() {
    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;
}

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

OpenImageConfig设置

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

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

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

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

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

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

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