-2

Google マップ バージョン 2 は初めてです。指定された LatLng で線を引いていました。私はそれらの線を引くことができます。特定のタイム ラインに線を引く方法はありますか。たとえば、latLng のリストがあり、3 秒ごとにポリラインを描きたいとします。このために、Thread.sleep(2000) を使用しました。しかし、私がこれを行っているとき、私のデバイスは攻撃を受けました.すべての繰り返しが終わった後、与えられたlatLngで線画を見ることができます 特定のタイム ラインで線を引く他の方法はありますか。前もって感謝します

    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) {

                }
4

1 に答える 1

0

Thread または HandlerThread を実装する場合は、ワーカー スレッドが完了するのを待っている間、UI スレッドがブロックされないようにしてください。<code>Thread.wait() または Thread.sleep() を呼び出さないでください。

http://developer.android.com/training/articles/perf-anr.html

UI スレッドをブロックする Thread.sleep() を呼び出さないでください。代わりに、 を使用できますHandler

考慮事項listPointには、以下のように実行できる緯度と経度のリストがあります

以下をクラス変数として宣言します。

Handler m_handler;
Runnable m_handlerTask ;
int t=0;

Handler緯度と経度を使用してポリラインを描画するには、3 秒の遅延で to を使用します

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(); 
于 2013-06-24T05:54:19.783 に答える