我已将预缩放位图设置为 ImageView 的源。然后我读了矩阵ImageView
并通过以下方式移动 ImageView 的位图matrix.postTranslate(shiftX, shiftY)
.
现在我想放大/缩小图像,同时保持中心ImageView
在缩放之前位图的同一点。
如果我尝试使用以下命令放大图像matrix.postScale(zoom, zoom)
,我想要保持的点(蓝点)转移到其他地方(紫点)。
我尝试了几种不同的方法将位图移回原位,但无法使其正常工作。我知道初始位图大小、ImageView 大小、虚线标记的距离。尝试计算所需的班次和使用matrix.postTranslate(-zoomshiftX, -zoomshiftY)
之后,但它没有正确移动。
即使发现,在matrix.postScale()函数之后底层位图的像素计数没有改变,并尝试了matrix.postTranslate(-zoomshiftX/zoom, -zoomshiftY/zoom) - 但仍然没有运气。
我如何实现这样的缩放?
看看我在这里关于创建可缩放 ViewGroup 的问题。我已经描述了最终解决方案中的代码片段,其中一些可能会有所帮助。
扩展RelativeLayout,并重写dispatchDraw()来创建可缩放的ViewGroup https://stackoverflow.com/questions/6378904/extending-relativelayout-and-overriding-dispatchdraw-to-create-a-zoomable-view/6490515#6490515
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)