我想在Google地图视图中添加一个动画圆圈,类似于您在此图片上看到的圆圈.

圆圈应从中心脉动到最大半径,表示当前用户的位置和搜索区域.
这是相关的代码块
Circle circle = mMap.addCircle(new CircleOptions()
.center(new LatLng(lat, lon))
.strokeColor(Color.CYAN).radius(1000));
valueAnimator = new ValueAnimator();
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float animatedFraction = valueAnimator.getAnimatedFraction();
circle.setRadius(animatedFraction * 1000);
circle.setStrokeWidth(1 + animatedFraction * 7);
}
});
Run Code Online (Sandbox Code Playgroud)
使用此代码,我只能看到没有任何动画的静态圆形笔划.
任何帮助将不胜感激.提前致谢.
我正在实现一种方法,在Android中使用此方法在Google Map(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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
半径是用SeekBar确定的,就像这样(我删除了一些不相关的代码):
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
final int radius = progress + DEFAULT_MIN_RADIUS;
drawMapSearchRadius(radius);
...
Run Code Online (Sandbox Code Playgroud)
当我滑动SeekBar时,圆的半径会按预期变化,但它会明显闪烁很多.它的外观和感觉非常糟糕.
有没有人遇到过这个错误,可以告诉我我做错了什么或者我能做些什么来限制,或者在最好的情况下,消除圆圈闪烁?
提前致谢
由于谷歌不是很快就能修复这样的错误,所以我没有希望解决这个问题.所以我想我的问题正在改变:有什么办法可以解决这个问题吗?