该图片查看器是模仿微信朋友圈查看图片编写
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.wanglu1209:PhotoViewer:lastRelease'
}
点击多张图片(类似微信朋友圈查看图片)
PhotoViewer
.setData(图片链接List<String>)
.setCurrentPage(现在是哪页)
.setImgContainer(img的容器 rv/gv/lv)
.setShowImageViewInterface(object : PhotoViewer.ShowImageViewInterface {
override fun show(iv: ImageView, url: String) {
// 设置自己加载图片的框架来加载图片
Glide.with(iv.context).load(url).into(iv)
}
})
.setOnLongClickListener(object : OnLongClickListener{
override fun onLongClick(view: View) {
// 长按图片的逻辑
}
})
.start(this)
只点击一张图片时(类似点击查看头像)
PhotoViewer
.setClickSingleImg(url, iv) //因为本框架不参与加载图片,所以还是要写回调方法
.setShowImageViewInterface(object : PhotoViewer.ShowImageViewInterface {
override fun show(iv: ImageView, url: String) {
Glide.with(iv.context).load(url).into(iv)
}
})
.start(this)
代码中,photoview
文件夹为chrisbanes大神的PhotoView
把代码加入到其中做了一些修改来达到效果
- 加载大图时没有动画的问题
修复一个小问题:
如果XML中ImageView并不是在第一层所导致的崩溃问题
增加androidx的支持
修复了在下拉退出时双指放大图片导致图片不会回弹的bug
增加PhotoViewer加载和结束的监听接口
.setOnPhotoViewerCreatedListener{}
.setOnPhotoViewerDestroyListener{}
更改依赖方式为compileOnly
修改了图片fragment传参的方式
修复了图片放大到最大点击退出崩溃的问题
增加了指示器样式的选择,setIndicatorType(PhotoViewer.INDICATOR_TYPE_DOT/INDICATOR_TYPE_TEXT)
但是如果图片>9张,则默认显示文字样式,因为屏幕装不下
增加了长按监听接口
解决了滑到的图片不在屏幕中显示的时候,RecyclerView获取不到ItemView报错的问题
minSDK改为14
增加view的判空处理,解决由小圆点引发的闪退问题
使用软引用解决了内存泄露的问题
增加了返回按钮监听
增加了简单的loading,loading颜色是根据主model的colorAccent来改变的,暂时不能自己设置颜色
增加了点击一张图片的方法
增加了弹出动画!
重构了view移动的代码,再次重新更改了退出动画,现在贼鸡儿流畅!!!
点按退出增加动画效果了,再次更新了退出的位置,效果更好
重构了代码,简化了调用链,更改了弹出方式(以前为activity,现在改为在当前Activity中增加一个layout),所以退出更顺滑,也不会出现两个activity之间退出的问题
修改了滑动时修改透明度的数值,不会那么快变为透明
修改了退出时缩放的代码,缩放更加精准
修复了一张图片时的问题
增加了指示器
简化了调用链 修复了退出动画