Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android谷歌地图为每个位置制作动画_Java_Android_Animation - Fatal编程技术网

Java Android谷歌地图为每个位置制作动画

Java Android谷歌地图为每个位置制作动画,java,android,animation,Java,Android,Animation,我有一个LatLng的数组列表,在onMapReady(GoogleMap-GoogleMap)的forloop中,我想按顺序设置从一个位置移动到另一个位置的动画 我尝试在for循环中执行此操作: mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(currLatLng,10), 1000, null); 动画只发生在最后一个位置 我该怎么做呢?我应该使用animateCamera()方法的最后一个参数吗?(可取消的回调)我

我有一个LatLng的数组列表,在onMapReady(GoogleMap-GoogleMap)的forloop中,我想按顺序设置从一个位置移动到另一个位置的动画

我尝试在for循环中执行此操作:

        mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(currLatLng,10), 1000, null);
动画只发生在最后一个位置


我该怎么做呢?我应该使用animateCamera()方法的最后一个参数吗?(可取消的回调)

我的直觉是正确的。
animateCamera
中的最后一个参数是
cancelablecallback()
接口。
我所做的是创建一个名为
nimateToLocationAtIndex(int-index)

然后打电话:

mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10), 2000, new GoogleMap.CancelableCallback() {
        @Override
        public void onFinish() {
            // Placing a marker on the position after animated
            Marker marker = mMap.addMarker(markerOptions);
            animateLocationMovement(i+1);
        }

虽然我遇到了另一个问题,即下一个位置的贴图没有加载,因此动画可能看起来很滞后,但这会按照我的要求设置位置的动画。

只需检查在for循环之间添加延迟是否可以工作到设置的时间1s@Nobody简单添加Thread.sleep()和Handler.postDelayed()不起作用。另外,我不喜欢在Android活动中添加Thread.sleep(因为在UI线程中这样做是非法的)。