有办法切换图片的时候 保持原本的缩放和移动吗?
leeManong opened this issue · comments
想实现个效果,先展示的缩略图,用户双指放大后自动加载原图,能做到原图加载设置好后,还保持之前的缩放和移动吗?
这很难,因为有很多计算需要依赖 contentSize,也就是加载到内存的图片的尺寸,contentSize 改变了就必须要重置所有的缩放信息
你可以尝试将现在组件的源码复制一份,然后将 contentSize 设置为 和 containerSize 一样,看看效果
另外我想知道你是什么样的业务场景会有这样的需求
场景就是,一开始用户点进去是这个图片的缩略图,清晰度不是很高,然后用户双指放大的时候,自动加载原图,然后无感替换缩略图,所以想要保持原本的缩放和移动,实现无感替换。
原图设置上去后,再手动修改缩放和偏移能实现不?
…------------------ 原始邮件 ------------------
发件人: "panpf/zoomimage" ***@***.***>;
发送时间: 2023年12月12日(星期二) 下午2:43
***@***.***>;
***@***.******@***.***>;
主题: Re: [panpf/zoomimage] 有办法切换图片的时候 保持原本的缩放和移动吗? (Issue #11)
这很难,因为有很多计算需要依赖 contentSize,也就是加载到内存的图片的尺寸,contentSize 改变了就必须要重置所有的缩放信息
你可以尝试将现在组件的源码复制一份,然后将 contentSize 设置为 和 containerSize 一样,看看效果
另外我想知道你是什么样的业务场景会有这样的需求
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
你的想法很难实现,你只能按我刚才说的办法试试了
这个代码是可以保持前后两张图的 看上去没有区别的,直接用原来的transformState替换到新的上。
有个问题就是替换后,手指去触摸缩放时会不太对。
如果能提供个setImageNoReset()就好啦。
val value = binding.imageView.zoomable.transformState.value.copy()
Glide.with(this)
.load("http://:www....")
.into(object :SimpleTarget<Drawable>(){
override fun onResourceReady(
resource: Drawable,
transition: Transition<in Drawable>?
) {
Glide.with(this@MainActivity).load(resource).into(binding.imageView)
// binding.imageView.setImageDrawable(resource)
lifecycleScope.launch(Dispatchers.Main) {
delay(100)
binding.imageView.zoomable._transformState.value = value
}
}
})