iielse / imageviewer

A simple and customizable Android full-screen image viewer 一个简单且可自定义的Android全屏图像浏览器
MIT License
2.23k stars 310 forks source link

缩略图设置的是 centerCrop 查看大图时 第一张没有放大 #73

Closed nobetter1 closed 4 years ago

nobetter1 commented 5 years ago

占了大图的位置 但是显示的是centerCrop的小图

canglen commented 5 years ago

请问你解决了吗?我也遇到这个问题了。不知道如何解决

nobetter1 commented 5 years ago

作者推荐我换了框架StfalconImageViewer

iielse commented 4 years ago

这个问题应该是预先使用centerCrop的小图占位.如果之后的大图加载成功后会变成全屏效果. 这里大图的加载失败了.所以界面停留在了小图展示. 同时由于框架没有友好的支持重试功能导致.

interface VHCustomizer {
    fun initialize(type: Int, viewHolder: RecyclerView.ViewHolder) {}
    fun bind(type: Int, data: Photo, viewHolder: RecyclerView.ViewHolder) {}
}
interface ImageLoader {
    fun load(view: ImageView, data: Photo, viewHolder: RecyclerView.ViewHolder)
    fun load(subsamplingView: SubsamplingScaleImageView, data: Photo, viewHolder: RecyclerView.ViewHolder)
}

关于加载的过程.我将Loader的接口进行了调整. 现在框架不关心数据源是什么,也不关心加载过程.全权交给开发者. 你需要实现 VHCustomizer 中重新布局PhotoViewHolder追加自定义元素,比如你的loadingUI. 在ImageLoader load 中去控制 load 的状态表现. 当loading失败的时候可以展示你的retry按钮并且添加点击重新加载的功能

尝试使用 ImageViewerBuilder.show() 来展示你的数据吧