如何在View中实现放大方法?

时间:2012-11-08 17:25:45

标签: android surfaceview ondraw gesturedetector

我创建了一个包含地图的指导应用程序。这个地图是使用数据库中的数据动态绘制的。[矩形坐标]为了绘制地图,我使用了View类并覆盖了Ondraw方法。

问题是我无法找到实现放大功能的方法。我已经使用Gesture Detector类来处理OnLongPress和OnTouchEvent方法。我正在考虑捏合放大功能,但不知道如何做到这一点。

期待一些好主意。谢谢!

课程扩展

  • 查看
  • GesturDetector

1 个答案:

答案 0 :(得分:0)

您能否提供一些有关如何绘制此动态地图的更多信息?现在,我将做出一个假设并与之一起运行。如果要在画布上绘制形状,可以将画布指向位图以绘制到:

Bitmap myDynamicMapBitmap = new Bitmap(MAP_WIDTH, MAP_HEIGHT, Bitmap.Config.ARGB_8888);
mapCanvas.setBitmap(myDynamicMapBitmap);
// Draw your map on the canvas here

现在你有了地图的位图表示,你可以利用这个开源项目,它基本上是内置的Android照片库应用程序的改编版,允许用户平移和缩放图像:

ImageViewZoom on GitHub

我以前在应用程序中使用过该项目,效果非常好。您可能需要调整一些以获得所需的行为(例如,禁用平移,因为您没有说您想要这样做。)

然后你真正需要做的就是:

imageViewZoomInstance.setImageBitmap(myDynamicMapBitmap);

该视图包含内置捏缩放。您可能希望将其与您创建的当前视图合并。