类似于京东物品评价列表的图片预览可以拖拽返回,带图片标题和图片总张数,多张预览
github地址:https://github.com/xwbbwx110/PreviewImageForKotlin
实现思路:
- 点击需要预览的view,获取view 在屏幕的位置
- 获取到位置信息之后,跳转到一个透明activity,在把新的图片,从预览的位置放大和位移
- 基于PhotoView,处理事件传递,通过手指位移来重绘view
- 核心思路是扩展PhotoView,通过手势,重绘view
上面代码解释:
首先缩放级别为1的时候才可以进行拖动,在DOWN事件记录手指第一次按下的位置,然后在MOVE事件处理当横向滑动的值大于纵向滑动的时候,才把事件传递下去,接着判断只有一根手指的时候才进行拖动操作,计算手指移动的距离,然后根据移动最大值和缩放最小值来计算缩放百分比,然后执行重绘操作,并且返回true,表示MOVE事件不传递
然后需要在viewpager处理一下 横向和纵向滑动的冲突,当横向滑动的值大于纵向滑动的时候,viewpager不拦截事件
具体代码 看github源码吧