【问题标题】:Circle overlay fill color not always drawn on Google Maps v2圆形覆盖填充颜色并不总是在 Google Maps v2 上绘制
【发布时间】:2013-11-17 01:01:09
【问题描述】:

我正在使用 Android 中的 Google Maps V2 在 mapFragment 中绘制几个圆圈。 V1 的一切都很好,但在切换之后,我的圆圈的填充颜色并不总是被绘制出来。

例如,我打开地图,圆圈在那里并被填充,但如果我放大几次,填充颜色就会消失。我缩小了,它仍然消失了(或者它可能会重新出现)。我无法确定是什么行为导致它消失,有时它甚至不存在,然后放大会导致它出现。

这是我的一个圈子的一些代码:

private void addAccuracyCircle() {
    accuracyCircle = map.addCircle(new CircleOptions()
            .center(LocationFinder.getActualPoint())
            .radius(LocationFinder.getActualLocation().getAccuracy())
            .fillColor(Color.argb(10, 0, 50, 240))
            .strokeColor(Color.argb(50, 0, 50, 240))
            .strokeWidth(2)
            .zIndex(1));
}

【问题讨论】:

  • 我在另一部 Jellybean 手机上尝试了该应用程序,但没有发生这种情况。我会进一步调查,看看是否能找到原因。
  • 你能发布你是如何定义LocationFinder的吗??
  • @Mitesh LocationFinder 是一个巨大的类,带有一个位置侦听器,具有确定用户位置的逻辑。它在这些调用中分别返回一个 LatLng 和一个准确度。
  • 我遇到了同样的问题。我注意到,如果我不清除地图(map.clear),那么我会得到 2 个圆圈,原来的圆圈会失去它的填充。这曾经可以正常工作,我能想到的唯一更改是更新 ADT(我正在使用 Eclipse)。
  • 您找到解决方法了吗?我在 4.3 设备上遇到了同样的问题。

标签: android google-maps overlay geometry


【解决方案1】:

您应该尝试在地图视图上执行 map.invalidate() - 发生这种情况的原因可能是在放大/缩小并在地图中导航时 - mapview 对象再次呈现自身并“错过”绘制您的颜色填充,我有一个类似的问题并解决它我写了一个刷新方法,清除地图上的控件->无效->重绘地图上的控件->无效 可能有点乱,但对我有用。

(类似)-

protected void RefreshMap() {
  map.getOverlays().clear();
  map.invalidate();

  // Use a list of itemize overlay here and add all the objects
  //from that list upon refresh

  map.invalidate();
}

【讨论】:

  • 我不确定我是否理解。我什么时候称无效?平移/缩放地图后?那将是很多无效的。关键是地图视图不应“错过”绘制颜色填充。
猜你喜欢
  • 2018-05-04
  • 1970-01-01
  • 2013-12-21
  • 1970-01-01
  • 2011-08-21
  • 2018-11-12
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
相关资源
最近更新 更多