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.
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
Intéressant. Merci pour cette information! – WarrenFaith