0

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

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

期待一些伟大的想法。谢谢!

类扩展

  • 看法
  • 手势检测器
4

1 回答 1

0

你能告诉我们更多关于你是如何绘制这张动态地图的信息吗?现在,我将做一个假设并运行它。如果您在画布上绘制形状,您可以将画布指向位图以进行绘制:

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

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

GitHub 上的 ImageViewZoom

我之前曾将该项目用于应用程序,并且效果非常好。您可能需要对其进行一些调整以获得您想要的行为(例如禁用平移,因为您没有说您想要那样)。

那么你真正需要做的就是:

imageViewZoomInstance.setImageBitmap(myDynamicMapBitmap);

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

于 2012-11-08T18:46:38.333 回答