2

我有一个应用程序,允许用户使用 ScaleGestureDetector 缩小以更近距离地查看自定义视图。

我想做的是在用户放大时向用户显示更大屏幕的缩略图。我想显示锚定在视图可见区域左下角的缩略图,以便用户缩放在,缩略图保持可见。

我的问题是,虽然我能够确定何时应该在 View 的 onDraw() 方法中显示缩略图,但我无法弄清楚如何将我希望绘制的形状(半透明 Rect)锚定在可见角落。使用绝对坐标将它绘制到画布上没有问题,但是一旦我放大,它就会停留在绝对角落。

我确实跟踪了当前的缩放因子以及缩放中心 (x,y),所以我可能会做一些与已知窗口大小相关的计算,以及这些值来确定角点,但只是想知道是否有任何例程或更好的方法来处理这个。

感谢您提供任何信息,

保罗

4

1 回答 1

4

弄清楚如何在缩放画布时获取当前可视区域的尺寸;调用 canvas.getClipBounds(); 在我的 onDraw 中给了我一个 Rect 代表“剪裁”的画布。由此,我能够访问 .top、.left、bottom .right 并确定缩略图特写视图的位置。

于 2011-02-07T04:59:51.337 回答