我有一个缩放和平移图像视图矩阵的代码,它运行良好,但我希望图像视图不会缩小到比我的屏幕小,我不想让它放大很多,我想设置缩放限制和拖动(平移)相同的事情如果图像的宽度大于屏幕,它应该水平平移,如果图像的高度大于屏幕,它应该垂直平移,如何我能实现这个结果吗?我尝试了麦克奥尔蒂斯的一些方法,但我无法让他们工作。
答案 0 :(得分:1)
我为我的应用编写了这个代码,并且很难将其完成。
我创建了一些Rect
和RectF
来完成大量的临时计算。如果您不必在每次操作中分配这些内容,效率会更高。
我使用Matrix.setRectToRect()
来查找最小比例因子,并使用3x表示最大比例因子。然后在postScale
缩放后,我将新的[绝对]比例因子钳制到最小/最大
在postScale
之后,我还将rect坐标与屏幕坐标进行比较,并添加平移以使图像角落在屏幕边界之外。对拖动操作也做了同样的逻辑。
答案 1 :(得分:0)
查看此库
https://github.com/davemorrissey/subsampling-scale-image-view
具有平移和缩放手势的高度可配置,易于扩展的视图,可显示巨大的图像而不会丢失细节。完美的照片画廊,地图,建筑计划等。