2016-04-15 14 views
0

Ich will schlafen und dann in OnDraw ziehen:Android - Sleep() und dann ziehen

protected void onDraw(Canvas canvas) { 
    if (_rectPath) { 
     canvas.drawPath(mRectPath, mFillPaint); 
     // SLEEP HERE for 5 seconds 
     canvas.drawPath(mRectPath, mNPaint); 
    } 
    canvas.drawPath(mPath, mPaint); 
} 

Wie würde ich für 5 s implementieren schlafen? Grundsätzlich möchte ich es 5 Sekunden warten und dann den nächsten Pfad zeichnen, mNPaint.

Danke!

+0

was zeichnen Sie? ist es eine Ansicht oder eine Zeichnung? – Mahfa

+0

Es ist ein OnDraw in einer Ansicht. – Eddev

+0

Erstellen Sie einen Handler und ein Runnable außerhalb von OnDraw void und starten Sie es anschließend onDraw void. Innerhalb von Runnable rufen Sie einfach invalidate() auf; Die Hexe wird onDraw erneut aufrufen – Mahfa

Antwort

2

Sie könnten diese Methode verwenden. Initialize Handler out side die ondraw-Methode

Handler handler = new Handler(); 
And inside onDraw method 


    handler.postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        //Draw the previous paths. 
        // Adjust the paths here and draw it 
        invalidate(); 
       } 
      }, 5 * 1000); 
+0

nur sagen ... :) aber Sie müssen das Runnable außerhalb der OnDraw-Methode initialisieren. – Mahfa

+0

Oh ja. danke – Krish

+0

Gern geschehen :) – Mahfa