GoogleMaps API中的动画地图标记

时间:2016-07-11 12:20:48

标签: android google-maps google-maps-markers

我正在尝试创建一个看起来像这样的自定义标记:

enter image description here

我的XML格式如下:

<solid
    android:color="#0093e8"/>

<size
    android:width="120dp"
    android:height="120dp"/>

enter image description here

是否可以添加&#34; Wave效果&#34;标记和波逐渐淡出(如图所示)?此外,这个动画应该不断播放(不需要用户点击地图标记)我将要做什么?谢谢!

1 个答案:

答案 0 :(得分:1)

我做了一些非常相似的事情,但我使用了GroundOverlay而不是标记,首先我定义了自定义动画:

public class RadiusAnimation extends Animation {
    private GroundOverlay groundOverlay;

    public RadiusAnimation(GroundOverlay groundOverlay) {
        this.groundOverlay = groundOverlay;

    }
    @Override
    protected void applyTransformation(float interpolatedTime, Transformation t) {
        groundOverlay.setDimensions( (100 * interpolatedTime) );
        groundOverlay.setTransparency( interpolatedTime );

    }


    @Override
    public void initialize(int width, int height, int parentWidth,int parentHeight) {
        super.initialize(width, height, parentWidth, parentHeight);
    }
}

然后我在onMapReady之后在groundOverlay上运行动画:

...
  groundOverlay = mGoogleMap.addGroundOverlay(new GroundOverlayOptions()
                    .image(image)
                    .position(new LatLng(lat, lng), 100));
  groundAnimation = new RadiusAnimation(groundOverlay);
  groundAnimation.setRepeatCount(Animation.INFINITE);
  groundAnimation.setRepeatMode(Animation.RESTART);
  groundAnimation.setDuration(2000);
  mapView.startAnimation(groundAnimation); // MapView where i show my map
...

我希望这可以帮到你