2010-11-04 4 views
1

J'ai de l'expérience avec le SurfaceView. Pour éviter les redessinages inutiles, j'utilise toujours une variable de compte à rebours qui indique au thread à quelle fréquence la vue doit être dessinée.SurfaceView de type PUSH_BUFFERS

countdown > 0 : draw ? doNothing 

Cependant, je pensais changer cela pour utiliser une "surface de poussée". Donc, il suffit de pousser un tampon à la surface et de montrer qu'au lieu de définir une variable de compte à rebours partout dans mon projet.

Mon problème est que je ne peux pas trouver un bon tutoriel/ressource où l'utilisation est décrite. À l'heure actuelle, j'ai quelque chose comme ceci:

// panel is the SurfaceView 
c = panel.getHolder().lockCanvas(null); 
synchronized (panel.getHolder()) { 
    panel.updatePhysics(); 
    panel.onDraw(c); 
} 
panel.getHolder().unlockCanvasAndPost(c); 

Je ne sais pas sur la façon d'obtenir la toile pour tirer quand je ne peux pas utiliser lockCanvas() comme mentionné dans la documentation.

Répondre

0

Cette question est obsolète après avoir rendu les types de surface obsolètes. Donc, il n'est plus utilisé ...

+1

Dépend. Si vous essayez d'utiliser CameraPreview, comme dans les exemples du SDK 7, "SURFACE_TYPE_PUSH_BUFFERS" est requis. Si vous ne parvenez pas à définir ce type, l'aperçu ne fonctionnera pas. Il doit donc y avoir une interprétation quelque part dans l'API de la caméra, même si les types sont marqués comme obsolètes. – rdoubleui

+0

Intéressant. Merci pour cette information! – WarrenFaith

Questions connexes