Thread de dessin d'un SurfaceView
Bonjour, j'ai regardé plusieurs tutoriels sur la création d'un SurfaceView, mais je n'ai pas compris pourquoi on fait une boucle (infinie) pour dessiner plusieurs fois sur ce SurfaceView alors qu'un seul dessin ça marche pour moi??
voici un exemple:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| class DrawingThread extends Thread {
// Utilisé pour arrêter le dessin quand il le faut
boolean keepDrawing = true;
@Override
public void run() {
while (keepDrawing) {
Canvas canvas = null;
try {
// On récupère le canvas pour dessiner dessus
canvas = mSurfaceHolder.lockCanvas();
// On s'assure qu'aucun autre thread n'accède au holder
synchronized (mSurfaceHolder) {
// Et on dessine
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DITHER_FLAG);
paint.setColor(Color.GREEN);
canvas.drawCircle(10,10 , 50, paint);
}
} finally {
if (canvas != null)
mSurfaceHolder.unlockCanvasAndPost(canvas);
}
try {
Thread.sleep(20);
} catch (InterruptedException e) {}
}
}
} |