如何在谷歌地图中绘制多边形线——android

如何在谷歌地图中绘制多边形线——android,android,android-mapview,google-maps-android-api-2,Android,Android Mapview,Google Maps Android Api 2,我是谷歌地图第二版的新手。我过去常在给定的格子里画一条线。我能画出那条线。有没有办法为具体的时间线划一条线。例如,我有一个板条列表,我想每3秒画一条多边形线。为此,我使用了Thread.sleep(2000)。但是当我这样做的时候,我的设备被击中了,在所有的动作完成后,我可以看到给定的线条。有没有其他方法可以在特定的时间线内画线。提前谢谢 PolylineOptions polylineOptionsPlay = new PolylineOptions(); fo

我是谷歌地图第二版的新手。我过去常在给定的格子里画一条线。我能画出那条线。有没有办法为具体的时间线划一条线。例如,我有一个板条列表,我想每3秒画一条多边形线。为此,我使用了Thread.sleep(2000)。但是当我这样做的时候,我的设备被击中了,在所有的动作完成后,我可以看到给定的线条。有没有其他方法可以在特定的时间线内画线。提前谢谢

    PolylineOptions polylineOptionsPlay =   new PolylineOptions();
          for (int i = 0; i < listPoint.size(); i++) {
                try {
                    System.out.println(i);
                    LatLng drawpoly = listPoint.get(i);
                    Log.v(TAG, "Hello :: "+drawpoly);
                    polylineOptionsPlay.add(drawpoly);
                    //googleMap.addPolyline(new PolylineOptions().add(locLatLng));
                    polyline = googleMap.addPolyline(polylineOptionsPlay);
                    polyline.setColor(Color.BLUE);
                    polyline.setWidth(2);

                    Thread.sleep(2000);

                } //System.out.println(stem[0]);
                catch (InterruptedException ex) {

                }
PolylineOptions PolylineOptions play=新的PolylineOptions();
对于(int i=0;i
如果您实现了Thread或HandlerThread,请确保在等待工作线程完成时UI线程没有阻塞-
不要调用Thread.wait()或Thread.sleep()

您不应该调用Thread.sleep(),因为它会阻止ui线程。相反,您可以使用
处理程序

考虑到
listPoint
有一个纬度和经度列表,您可以按如下操作

将下面的变量声明为类变量

Handler m_handler;
Runnable m_handlerTask ;
int t=0;
使用
处理程序
以3秒的延迟绘制多段线,使用lat和long绘制多段线

m_handler = new Handler();
m_handlerTask = new Runnable()
{
@Override 
public void run() { 
if(t<listPoint.size()-1)
{     
LatLng src = listPoint.get(t);
LatLng dest = listPoint.get(t + 1);
Polyline line = mMap.addPolyline(new PolylineOptions()
    .add(new LatLng(src.latitude, src.longitude),
    new LatLng(dest.latitude,dest.longitude))                                       
    .width(2).color(Color.BLUE).geodesic(true)); 
    t++;
    }
    else
    {
   m_handler.removeCallbacks(m_handlerTask);
    } 
   m_handler.postDelayed(m_handlerTask, 3000);    
    }
};
m_handlerTask.run(); 
m_handler=new handler();
m_handlerTask=new Runnable()
{
@凌驾
public void run(){

如果(t)你尝试下面的方法吗?是的,我正在尝试。一旦我确定了,我会进行更新。谢谢让我知道结果并记住不要阻止ui线程。检查答案中的链接。嗨,谢谢,这很好。但问题是我想给一个特定的latlng时间限制给另一个。我在数据库中设置了latlng列表(它有10个以上的板条)。因此,当我开始循环时,它应该给时间线(2秒)来绘制一个板条到另一个板条。:(我对这个主题不熟悉。你可以使用下面的并修改相同的。你面临的困难是什么?