我使用来自com.ortiz.touch 的TouchImageView
来支持位图缩放和拖动。
我希望有一个像当前地图应用程序这样的功能:一旦你长时间点击感兴趣的区域就会放置一个Pin图标,你可以缩放并拖动地图进行检查,但是Pin图标的位置在你感兴趣的点上是稳定的。 / p>
现在我可以从imageView.setOnLongClickListener
到imageView.draw(canvas)
开始绘制一个圆圈,imageView.setOnLongClickListener
中的代码简化如下:
zoomedRect = imageView.getZoomedRect();
currentZoom = imageView.getCurrentZoom();
Rect imageBounds = ((BitmapDrawable) imageView.getDrawable())
.getBounds();
// height and width of the visible (scaled) image
int scaledHeight = imageBounds.height();
int scaledWidth = imageBounds.width();
// draw circle only accept the absolute coordinate in an
// image area, so need a transfer.
currentAbsoluteTop = zoomedRect.top * scaledHeight
+ lastClickedY_CapturedInOnTouch / currentZoom;
currentAbsoluteLeft = zoomedRect.left * scaledWidth
+ lastClickedX_CapturedInOnTouch / currentZoom;
// save the circle coordinate to my image view.
imageView.drawCircleByXandY(currentAbsoluteLeft,
currentAbsoluteTop);
MyTouchImageView中的和draw(Canvas canvas)
(继承自TouchImageView
)基本上与继续传输相反,并且有效。
现在的问题是,一旦我放大或拖动ImageView,圆圈就会飞,我注意到如果我为不同比例的位图选择不同的imageVeiw.setScaleType
,行为会有所不同,
任何人都可以提供帮助吗?