在可触摸的ImageView

时间:2015-06-16 08:40:53

标签: android canvas bitmap imageview

我使用来自com.ortiz.touch TouchImageView来支持位图缩放和拖动。

我希望有一个像当前地图应用程序这样的功能:一旦你长时间点击感兴趣的区域就会放置一个Pin图标,你可以缩放并拖动地图进行检查,但是Pin图标的位置在你感兴趣的点上是稳定的。 / p>

现在我可以从imageView.setOnLongClickListenerimageView.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,行为会有所不同,

任何人都可以提供帮助吗?

0 个答案:

没有答案