1、修改图片和视频同步缩放的方式,防止出现缩放大小不同步的问题
1、新增支持 Coil3
2、修复 Coil 不能显示 gif 图的问题
3、修改 glide coil 等图片加载框架的导入方式
1、修复点击事件重复两次问题
1、修复退出时视频放大后显示不正常的问题
1、修复未加载视频或未加载图片时的视频缩放问题
1、修复切换新增视频不能自动播放的问题
2、修复长尺寸视频缩放不正确的问题
1、升级AGP版本
2、升级播放器版本
1、新增可以缩放视频的功能,默认是打开此功能,设置如下设置可以恢复到之前
VideoPlayerFragment.Scaling = false;
1、修复超大图是旋转后的图片时加载错误问题
2、修复Glide加载旋转后的超大图片时内存溢出问题
1、修复点击失效问题
1、修复页面重建导致的崩溃问题
2、升级 ShapeImageView 库至最新版本 1.5.6
1、fix #33
2、新增修改双指触摸阈值方法 OpenImageConfig.getScaledTouchSlop(slop)
1、fix #32
1、fix #29
1、fix #30
1、修复bug
2、优化视频播放
1、优化打开大图页面的启动速度,提升幅度理想情况下大约 30%
1、修复部分手机切换图片第二张不显示问题
2、修复部分手机退到桌面再回来后显示loading的问题
3、优化TouchCloseLayout代码
1、修复不能获取View大小时,超长图不能显示为阅读模式的bug
2、完善 TouchCloseLayout
3、修复下载按钮在全屏时点击无效问题
4、升级 ShapeImageView 库至最新版本 1.5.5
1、新增 OpenImageCoilLib 库,使用方式如下:
- 如果您只是使用图片功能,则只需要如下引入方式即可:
//OpenImageCoilLib 引入Coil(2.4.0)图片引擎,没有引入视频播放器;
implementation 'io.github.FlyJingFish.OpenImage:OpenImageCoilLib:2.1.7'
- 如果您想要使用图片和视频功能,则需要按如下配置(引入 OpenImageFullLib 时排除掉 OpenImageGlideLib,否则将会同时存在Glide和Coil):
//OpenImageFullLib 是完整版,如果您不想自定义图片引擎和视频播放器引擎可直接引用以下库
implementation ('io.github.FlyJingFish.OpenImage:OpenImageFullLib:2.1.7'){
exclude module: 'OpenImageGlideLib'
}
//OpenImageCoilLib 引入Coil(2.4.0)图片引擎,没有引入视频播放器;
implementation 'io.github.FlyJingFish.OpenImage:OpenImageCoilLib:2.1.7'
2、重写一些代码,限制外部访问一些方法
1、修复删除到最后一个Item时不回调onRemove的问题
1、修复大图旋转问题
2、修复部分手机双指放大时图片跳动问题
1、新增同时加载缩略图,新版本默认开启,详细内容可看方法说明
- 全局设置
OpenImageConfig.getInstance().setBothLoadCover()
- 局部设置
OpenImage.with(context).setBothLoadCover()
2、修复 PhotoViewAttacher 内存泄漏问题
3、修复播放器UI显示问题
4、修改方法说明中错别字
1、修复视频设置点击和长按监听不起作用的问题
1、修复下载较大视频时,中途异常导致下载失败的问题
2、修复下载视频时内存泄漏问题
- 点击的 View 在 Fragment 中使用时传入 Fragment
OpenImage.with(Fragment fragment)
1、优化下载视频,缓存与下载功能相结合,总之下载视频时既省一倍流量又能使播放更加流畅
1、彻底修复预加载视频不能正常播放的问题
2、优化视频播放器显示(主要针对首次切到视频页面不显示播放按钮、进度条等控件)
1、修复设置预加载后视频播放不正常的bug
2、新增 OpenImageCoverVideoPlayer ,简化播放器设置封面
3、优化播放器播放时隐藏封面的逻辑
4、优化加载和下载原图或视频的过程,防止内存泄漏
5、修改加载点击的图片逻辑,防止因为加载更多数据导致白白被加载
6、记录播放位置,切换回来可以继续播放
1、修复传入ImageView的list 后关闭页面崩溃的bug
2、修改 BaseInnerFragment 中 onTouchClose 和 onTouchScale 只在生命周期的 onResume 下才被调用
3、优化播放器,使其在缓冲时点击屏幕不隐藏 LoadingView
4、删除雪花id获取方法以减少运算
1、优化库的初始化速度
2、修改状态栏高度获取方法避免调用异常
1、新增预加载配置,对于图片和视频都适用,视频可在切换页面后秒播
- 全局设置
OpenImageConfig.getInstance().setPreloadCount(lazyPreload,preloadCount);
- 局部设置
OpenImage.with(Context context).setPreloadCount(lazyPreload,preloadCount);
2、优化视频播放速度,通过设置预加载切换页面后可实现视频秒播效果
3、修改状态栏高度获取方法,保证Android 11以上能获取到正确的高度
4、升级 ShapeImageView 库至最新版本 1.5.4
1、新增 setClickRecyclerView(RecyclerView, LayoutManagerFindVisiblePosition, SourceImageViewIdGet) 方法,传入 LayoutManagerFindVisiblePosition
即可支持更多自定义的 LayoutManager
使用方式:
openImage.setClickRecyclerView(binding.rv.rv, new LayoutManagerFindVisiblePosition() {
@Override
public int findFirstVisibleItemPosition() {
return customLayoutManager.findFirstVisibleItemPosition();
}
@Override
public int findLastVisibleItemPosition() {
return customLayoutManager.findLastVisibleItemPosition();
}
}, (data, position1) -> R.id.iv_image)
1、针对 getCoverImageUrl() 和 getImageUrl() 返回链接不同时,修复 Center 和 CenterInside 打开和关闭页面时的显示问题
2、优化一次能够显示超大图更多的细节,使滑动时尽量多的看到清晰图
1、优化拖动图片过程,避免部分情况下拖动图片被识别为切换图片
2、优化显示超大图细节速度和过程
1、优化查看超大图过程,使清晰细节图在拖拽缩放过程中尽可能多的显示
1、适配 Android 13 请求权限的代码
2、提供自定义请求权限的接口 --> OpenImage.setOnPermissionsInterceptListener()
1、修复多个大图页面叠加时下拉显示不正常的问题
2、修复传入一个数据后,在大图页面又增加数据没有显示指示器的问题
1、修改保存视频时优先寻找本地视频缓存文件,如果不存在再从网络下载
1、修复某些情况下小封面和大封面重叠显示出来的问题
1、修改超大图第一次双击放大的尺寸
1、修复部分机型无法加载超大图问题
2、新增支持 Assets 图片及超大图
1、完善查看超大图细节时频繁滑动触摸导致的细节图错位问题
1、新增支持超大图,可查看超大图细节
2、超大图功能可以选择关闭 --> OpenImageConfig.getInstance().setSupportSuperBigImage(false);
1、修复打开大图所在页面 finish() 后,大图页面切换图片崩溃的 bug
2、新增支持 Gif 动图
3、新增可选关闭按钮
4、新增控制触摸关闭全局设置和局部设置,新增控制点击关闭全局设置和局部设置
1、修复因为加载更多数据导致的下载进度显示错误的问题
2、BaseInnerFragment 的 checkPermissionAndDownload 下载前先检测是否获取了读写权限
1、修复下载进度在切换项目后的显示bug
2、BaseInnerFragment 和 BaseImageFragment 新增 下载图片或视频 的方法
1、新增可选下载图片或视频的按钮,对应方法是 OpenImage ---> setShowDownload (如果需要显示下载进度请前往下载图片或视频的使用说明)
2、修复视频播放结束后播放器上帝播放按钮不能再次点击的 bug
3、升级 ShapeImageView 库至最新版本 1.5.2
1、新增支持 WebView 对应的方法是 OpenImage ---> setClickWebView
2、新增 OpenImage ---> setOnExitListener 设置退出大图页面返的监听
3、升级 ShapeImageView 库至最新版本 1.5.1
1、修改 OpenImageFragmentStateAdapter 的 getItemId 方法,使用雪花算法避免 Hash 值也会重复
1、修改 OpenImageFragmentStateAdapter 的 getItemId 方法,使用 Hash 值
1、OpenImageFragmentStateAdapter 新增 删除、替换(更新) 数据的方法
2、OnUpdateViewListener 新增 onRemove、 onReplace(更新) 方法,onUpdate 改名为 onAdd
1、关闭一些访问权限,避免重度定制使用者使用后出现问题
1、修复 android12 上 setNoneClickView 时返回后导致父activity动画被更改的问题
2、增加更新数据和View的方法(OpenImage中新增两个 setOpenImageActivityCls 方法 可用于更新)
3、修复添加数据之后指示器不变的bug
1、修复 OpenImageActivity 中打开页面是回调两次选中的bug
2、修复 使用 setClickViewPager 时,设置 setWechatExitFillInEffect(true) 没有微信返回补位效果的bug
3、修复 OpenImageActivity 加载更多数据后返回错位问题
4、OpenImageFragmentStateAdapter 添加 向前添加更多数据
1、修复完善播放器显示上的问题
1、修复封面 PhotoView 的 bug
2、完善 OpenImageFragmentStateAdapter
3、修复 OpenImageVideoPlayer 暂停播放时的问题
4、添加设置错误数据位置等的错误提示
1、OpenImageActivity 页面新增 Item 点击监听器、长按监听器、选中监听器
2、修复传入 ImageView 返回时的空指针 bug
3、新增设置触摸关闭控件方向,并完善触摸关闭控件
4、修复下拉关闭的 bug
5、新增相册适配器
6、新增快手示例
7、OpenImageActivity 页面新增 OpenImageFragmentStateAdapter
1、修复部分情况下 OnSelectMediaListener 返回的position不对的问题
2、完善 TouchCloseLayout 类
3、添加调用 BaseInnerFragment 中的方法必要时将会进行异常提示
1、1.7.4更新失败重新上新版本
2、优化加载图片过程,避免内存泄漏
1、优化加载图片过程,避免内存泄漏(版本无法使用)
1、升级 ShapeImageView 库,处理某些小伙伴遇到的自定义属性冲突的问题
1、修复 Android 12 及以上打开大图所在页面返回时的动画异常问题
1、优化加载图片,删除掉设置缓存模式和小图加载器,让使用者更容易使用
1、修复使用 ShapeImageView 长图在返回时的显示问题
1、进一步完善可定制的 OpenImageActivity 页面
1、再次关闭一些不必要的类的访问权限
2、新增支持设置矩形圆角图和圆形图,设置后关闭大图页面时效果更加细腻
1、关闭 BaseActivity 和 BaseFragment 的访问权限
2、限制自定义图片或视频页面必须继承 BaseImageFragment
1、修复使用设置数据包含 Parcelable 类型数据时,打不开页面的问题
1、完善方法说明
2、修复 使用 setNoneClickView 时,数据问题
1、修改 ViewPagerActivity 类名为 OpenImageActivity
2、修改 OpenImage 的 setOpenImageActivityCls 方法,限制页面必须继承 OpenImageActivity
1、OpenImage 新增重载 setOpenImageActivityCls 方法,可给自定义大图页面传数据
2、当 OpenImage 设置 setNoneClickView 时 默认渐现渐隐动画
1、修复 Layer 相关 bug
2、修复部分情况下视频播放后,loading 依旧在显示的问题
1、针对 1.6.0 第1点中的 debug 模式判断方法修改,改为根据使用者的开发配置来判定是否是 debug 模式
2、升级 ShapeImageView 到1.4.9
1、修改 OpenImage.show() 时校验 setClickPosition 改为只在 Debug 模式下抛异常,正式环境默认采取无 ClickView 的模式打开大图
1、OpenImageFullLib 库新增支持全屏播放视频
2、图片视频页面 Fragment 和 UpperLayerFragment 新增 onKeyBackDown 方法(点击物理返回按钮时调用 true 可返回 false不可返回)
1、新增支持无点击 View 时也可打开大图页面,使用 setNoneClickView 方法
2、修改 UpperLayerFragmentCreate 的方法名 createVideoFragment --> createLayerFragment
3、上下滑动时拖动关闭的适配 Rtl
1、修复超长图在 AutoCrop 模式下的退出页面时显示问题
1、仓库地址转移到 Maven Central
本日志从1.5.6开始记录