Круговая анимация на карте google в android

Делая круговую анимацию на карте Google, используя оценочную анимацию, но анимация все время мерцает и мигает.

Вот код,

CircleOptions circleOptions = new CircleOptions() .center(searchStopPoint) //set center .radius(100) //set radius in meters .strokeColor(Color.TRANSPARENT) .fillColor(0x555751FF) .strokeWidth(5); busStopCircle = googleMap.addCircle(circleOptions); ValueAnimator valueAnimator = new ValueAnimator(); valueAnimator.setRepeatCount(ValueAnimator.INFINITE); valueAnimator.setRepeatMode(ValueAnimator.RESTART); valueAnimator.setIntValues(0, 100); valueAnimator.setDuration(3000); valueAnimator.setEvaluator(new IntEvaluator()); valueAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { float animatedFraction = valueAnimator.getAnimatedFraction(); busStopCircle.setRadius(animatedFraction * 100); } }); valueAnimator.start(); 

Может ли кто-нибудь помочь мне сделать гладкую анимацию без мерцания.

благодаря

Solutions Collecting From Web of "Круговая анимация на карте google в android"

Это известная проблема . Одним из способов было бы использовать GroundOverlay вместо круга.
Вот пример:
Создайте круг:

 // The drawable to use for the circle GradientDrawable d = new GradientDrawable(); d.setShape(GradientDrawable.OVAL); d.setSize(500,500); d.setColor(0x555751FF); d.setStroke(5, Color.TRANSPARENT); Bitmap bitmap = Bitmap.createBitmap(d.getIntrinsicWidth() , d.getIntrinsicHeight() , Bitmap.Config.ARGB_8888); // Convert the drawable to bitmap Canvas canvas = new Canvas(bitmap); d.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); d.draw(canvas); // Radius of the circle final int radius = 100; // Add the circle to the map final GroundOverlay circle = map.addGroundOverlay(new GroundOverlayOptions() .position(searchStopPoint, 2 * radius).image(BitmapDescriptorFactory.fromBitmap(bitmap))); 

Теперь измените свой аниматор на это:

 ValueAnimator valueAnimator = new ValueAnimator(); valueAnimator.setRepeatCount(ValueAnimator.INFINITE); valueAnimator.setRepeatMode(ValueAnimator.RESTART); valueAnimator.setIntValues(0, radius); valueAnimator.setDuration(3000); valueAnimator.setEvaluator(new IntEvaluator()); valueAnimator.setInterpolator(new AccelerateDecelerateInterpolator()); valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { float animatedFraction = valueAnimator.getAnimatedFraction(); circle.setDimensions(animatedFraction * radius * 2); } }); valueAnimator.start(); 

ОБНОВЛЕНИЕ : эта проблема исправлена