android - 将标记从屏幕顶部缓慢放置到 android map V2 上的位置

标签 android google-maps-markers android-maps-v2

我正在使用 android maps v2works 正常我可以在位置上长按添加和删除标记。

问题: 我想将标记慢慢放入触摸位置,即我希望用户看到标记从屏幕顶部 float 到它被放置的位置(触摸位置)。

目前;标记只是出现在触摸的位置,因此您必须抬起手指才能看到它已被放下。很高兴看到它来自屏幕顶部。

谢谢。

最佳答案

您可以使用类似于此(未经测试)的代码实现此目的:

final LatLng target = ...;

final long duration = 400;
final Handler handler = new Handler();
final long start = SystemClock.uptimeMillis();
Projection proj = map.getProjection();

Point startPoint = proj.toScreenLocation(target);
startPoint.y = 0;
final LatLng startLatLng = proj.fromScreenLocation(startPoint);

final Interpolator interpolator = new LinearInterpolator();
handler.post(new Runnable() {
    @Override
    public void run() {
        long elapsed = SystemClock.uptimeMillis() - start;
        float t = interpolator.getInterpolation((float) elapsed / duration);
        double lng = t * target.longitude + (1 - t) * startLatLng.longitude;
        double lat = t * target.latitude + (1 - t) * startLatLng.latitude;
        marker.setPosition(new LatLng(lat, lng));
        if (t < 1.0) {
            // Post again 10ms later.
            handler.postDelayed(this, 10);
        } else {
            // animation ended
        }
    }
});

关于android - 将标记从屏幕顶部缓慢放置到 android map V2 上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16604206/

相关文章:

Android - CircleView 内的 Google map

android - 如何检测用户是否在设置中关闭了位置?

android - ClassCastException:com.soomla.SoomlaApp无法转换为org.cocos2dx.cpp.AnalyticsApplication

java - 有人可以帮助我理解调用 Intent 来选择文件吗?

javascript - 更改谷歌地图方向中的单个标记

javascript - 获取 Google map XML 文件的最后一个节点

javascript - 如何在 Google Maps API 中获取 KML 放置标记值?

android - google mapView 样式不适用于 maptype=TERRAIN 的 Android

javascript - Chromium 与 WebView 中的窗口确认()行为

java - openCV 中的 cvtColor 创建拉伸(stretch)图像数组?