【发布时间】:2014-10-22 14:15:33
【问题描述】:
我正在通过这种方法实现一种在 Android 中的 Google 地图 (v2) 上显示搜索半径的方法:
// Method for drawing a circle around the user
private void drawMapSearchRadius(int radius) {
if(mMap != null) {
final LatLng userLatLng = getUserLatLng();
if(mSearchCircle == null){
CircleOptions circleOptions = new CircleOptions();
circleOptions.fillColor(Color.parseColor("#447755ff"));
circleOptions.strokeColor(Color.TRANSPARENT);
circleOptions.center(userLatLng);
circleOptions.radius(radius);
mSearchCircle = mMap.addCircle(circleOptions);
} else {
mSearchCircle.setCenter(userLatLng);
mSearchCircle.setRadius(radius);
}
}
}
半径是用 SeekBar 确定的,就像这样(我删除了一些不相关的代码):
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
final int radius = progress + DEFAULT_MIN_RADIUS;
drawMapSearchRadius(radius);
...
当我滑动 SeekBar 时,圆的半径按预期变化,但明显闪烁很多。它看起来和感觉都非常糟糕。
有没有人遇到过这个错误并且可以告诉我我做错了什么或者我可以做些什么来限制或者在最好的情况下消除圆圈闪烁?
提前致谢
编辑:Apparently it's a bug existing for over a year already, acknowledged by Google last month.
由于 Google 不以快速修复此类错误而闻名,因此我对修复的希望很小。所以我想我的问题正在变成这样:目前是否有任何解决方法?
【问题讨论】:
-
您找到解决方法了吗?
-
只有一个非常繁琐的,不适用于 3d 倾斜地图。我通过在地图上添加一个额外的视图并缩放和移动它(绕过整个地图片段)来做到这一点。它有效,但我不推荐它。另请查看我发布的链接,那里总是有一些不错的新提示和解决方法!祝你好运!
标签: android google-maps geometry shape