设置矩阵最小和最大比例ImageView?

Set Matrix minimum and maximum scale ImageView?

我有一个代码可以缩放和平移 imageview 矩阵,它运行良好,但我希望 imageview 不会缩放到小于我的屏幕,我不希望它缩放太多,我想要设置缩放限制和拖动(平移)相同的东西如果图像的宽度大于屏幕,它应该水平平移,如果图像的高度大于屏幕,它应该垂直平移,我怎样才能达到这个结果?我尝试了 mike Ortiz 的一些方法,但我无法让它们起作用。

看看这个图书馆

https://github.com/davemorrissey/subsampling-scale-image-view

高度可配置、易于扩展的视图,带有平移和缩放手势,可在不丢失细节的情况下显示巨大的图像。非常适合照片画廊、地图、建筑平面图等。

我为我的应用程序编写了这个代码,但很难让它完全正确。

我创建了一些 Rects 和 RectFs 来立即进行大量的临时计算。当您不必在每个操作上分配这些时,效率会更高。

我使用 Matrix.setRectToRect() 找到最小比例因子,最大比例因子的 3 倍。然后在缩放 postScale 之后,我将新的 [绝对] 比例因子固定为 min/max。

同样在 postScale 之后,我还将 rect 坐标与屏幕坐标进行比较,并添加平移以将图像角保持在屏幕边界之外。同样的逻辑也适用于拖动操作。