Disons que je veux dessiner une ligne, puis attendez cinq secondes, puis dessinez une autre ligne. J'ai une méthode comme celle-ci: Comment faire une pause? P> p>
4 Réponses :
Utiliser thread.sleep (5000) code>, cela devrait le faire. P>
Cela semble attendre cinq secondes, puis attirer les deux lignes.
Probablement et dans tous les cas, vous ne devriez jamais tarder dans votre ONDRAW (). Rendrait votre application à lagon.
@ Source.RAR Où et comment ferais-je cela, alors?
@Deev, je pensais qu'il était signifié que tout le dessin est exécuté dans un fil séparé.
@Thebeatlemaniac Tous les dessins sont effectués sur le fil de l'interface utilisateur et Afaik, mettant un retard comme celui qui ne fera rien. L'écran ne se mettra à jour avant que la fonction ONDRAW revienne.
Eh bien ... vous pouvez définir un drapeau (qui serait dans une autre méthode) et dans votre I.e. Peut-être que quelque chose comme (bien que je ne sois pas sûr de savoir pourquoi vous auriez besoin d'une pause) p> ONDRAW () code> en fonction de la valeur de ce drapeau dessinant cette ligne.
N'attendez pas la méthode onDraw, elle s'appelle dans le fil de l'interface utilisateur et vous le bloquerez. Utilisez des drapeaux pour manipuler quelle ligne sera dessinée que d'utiliser dans votre code comme celui-ci p>
Vous pouvez utiliser un compte à rebours similaire à celui-ci:
public void onDraw(Canvas canvas) { int w = canvas.getWidth(); int h = canvas.getHeight(); canvas.drawLine(w/2, 0, w/2, h-1, paint); // PAUSE FIVE SECONDS new CountDownTimer(5000,1000){ @Override public void onTick(long miliseconds){} @Override public void onFinish(){ //after 5 seconds draw the second line canvas.drawLine(0, h/2, w-1, h/2, paint); } }.start(); }
Cela nécessite que je modifie H, w et toile aux variables finales. Quand je le fais et que je l'exécute, seule la première ligne est dessinée.
Je pense que vous avez manqué de commencer le comtedownter: !!! Essayez d'afficher un logcat MSG dans la méthode Onfinish () et voyez s'il est exécuté ou non
J'ai posé une question similaire, vérifiez-la.
Donc, vous devriez donner le lien à votre question !!!