gpt4 book ai didi

android - 向集群标记添加动画?

转载 作者:太空狗 更新时间:2023-10-29 14:10:45 25 4
gpt4 key购买 nike

简单的问题......如何在集群将其绘制在 map 上之前将动画添加到集群的标记!?我一直在寻找,但没有希望。我只需要知道从哪里开始

这就是我添加集群的方式以及我尝试制作动画的方式

private class AddMarker implements Runnable {
private MarkerOptions options;

public AddMarker(MarkerOptions options) {
this.options = options;
}

@Override
public void run() {
MyPoi poi = new MyPoi(options.getPosition());
mClusterManager.addItem(poi);
List<Marker> markers = new ArrayList<>();
markers.addAll(mClusterManager.getMarkerCollection().getMarkers());
if(markers.size() == 0){

}else if (markers.size() == 1){
animateMarker(markers.get(0),Constants.MARKER_ADD);
}else if(markers.size() > 1){
animateMarker(markers.get(markers.size()-1),Constants.MARKER_ADD);
}

mClusterManager.cluster();
//Marker newMarker = googleMap.addMarker(options);
//newMarker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE));
}
}

最佳答案

这是我的解决方案:

private void setMarkerBounce(Marker marker) {
for (final com.google.android.gms.maps.model.Marker m : mClusterManager.getMarkerCollection().getMarkers()) {
if (m.getPosition().equals(marker.getPosition())) {
final Handler handler = new Handler();
final long startTime = SystemClock.uptimeMillis();
final long duration = 2000;
final Interpolator interpolator = new BounceInterpolator();
handler.post(new Runnable() {
@Override
public void run() {
long elapsed = SystemClock.uptimeMillis() - startTime;
float t = Math.max(1 - interpolator.getInterpolation((float) elapsed / duration), 0);
m.setAnchor(0.5f, 1.0f + t);

if (t > 0.0) {
handler.postDelayed(this, 16);
}
}
});
return;
}
}
}

它有点丑,但工作正常。您必须传递您的自定义 ClusterItem 实例。

关于android - 向集群标记添加动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28783757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com