【问题标题】:Google Map v2 Add an animation when marker appearGoogle Map v2 标记出现时添加动画
【发布时间】:2018-08-17 03:13:24
【问题描述】:

在 iOS 中,Google Map 允许在 Marker 在地图上弹出时提供动画。

我希望在 Android 上做同样的事情。所以没有什么可做的,或者有人知道解决方法吗?

【问题讨论】:

  • 您是否为您的应用使用自定义地图活动?
  • 我正在使用我在自定义活动中推送片段的 mapFragment。但我不确定这是否是你所要求的。
  • 标记不是一直出现在屏幕上,而是地图加载,然后您可以在 onMapClick 上执行动画?
  • 不,我收到了一个返回数据的 API 调用,我在我的地图上放置了带有该数据的标记。这就是我将它放在我想要为其设置动画的地图上的时候。
  • 你试过我的解决方案了吗?

标签: android android-animation google-maps-markers google-maps-android-api-2


【解决方案1】:

您可以使用一般的 Android 方法为标记设置动画:Animations and Transitions。以thisthat 为例:

private static void animateMarker(final Marker marker, final int current, final LatLng[] line) {
    if (line == null || line.length == 0 || current >= line.length) {
        return;
    }

    ObjectAnimator animator = ObjectAnimator.ofObject(marker, property, typeEvaluator, line[current]);
    animator.addListener(new Animator.AnimatorListener() {
        @Override
        public void onAnimationStart(Animator animation) {

        }

        @Override
        public void onAnimationEnd(Animator animation) {
            animateMarker(marker, current + 1, line);
        }

        @Override
        public void onAnimationCancel(Animator animation) {

        }

        @Override
        public void onAnimationRepeat(Animator animation) {

        }
    });

    animator.setDuration(DURATION);
    animator.start();
}

或使用库,例如​​ that

【讨论】:

    【解决方案2】:

    根据您从服务器发送的response,您接收/提取latitudelongitude

     //call this method for adding marker with lat and long
    
        public void addmarker(){
         LatLng marker = new LatLng(double lat, double long);
                googleMap.addMarker(new MarkerOptions().position(marker)
                        .title("My title"));
                googleMap.moveCamera(CameraUpdateFactory.newLatLng(marker));
    // now the marker is set
    // add a delay of 100-200 ms and start you animation (delay for failsafe)
        }
    

    【讨论】:

    • 我不想将相机移动到新标记我想在标记全部出现时制作动画(例如它可以是淡入淡出)以避免默认的即时弹出跨度>
    • @TomJouin 如果您不将相机移向您放置标记的位置,用户将如何看到动画。
    • 地图是巴黎的放大图,地图上有很多标记。当我选择一个特定日期时,该日期会在地图上显示该日期的每个标记。我知道如何在地图上移动相机。我想做的是在他出现时为我的标记设置一个自定义动画。不要移动相机。
    • @TomJouin 嘿伙计,我知道你可能已经解决了它,但如果没有,这是一件非常简单的事情。一切都在您的代码中,就像您在屏幕上向用户显示所有必需的标记并在其之后启动动画时一样,一步一步地进行操作。谢谢
    • 不,这不是一件很简单的事情。
    猜你喜欢
    • 1970-01-01
    • 2013-06-24
    • 2014-12-24
    • 2013-09-13
    • 1970-01-01
    • 2013-01-29
    • 2013-06-27
    • 1970-01-01
    • 2014-08-08
    相关资源
    最近更新 更多