Red de conocimiento informático - Material del sitio web - Cómo liberar completamente un SurfaceView

Cómo liberar completamente un SurfaceView

Cómo usar SurfaceView:

Primero herede SurfaceView e implemente la interfaz SurfaceHolder.Callback. Debido a que existe un principio al usar SurfaceView, todo el trabajo de dibujo debe iniciarse después de crear la superficie. Se puede copiar directamente a la memoria de video y mostrarlo, lo que hace que la velocidad de visualización sea muy rápida y debe finalizar antes de que se destruya la superficie. Entonces, SurfaceCreated y SurfaceDestroyed en Callback se convierten en los límites del código de procesamiento del dibujo.

Métodos que deben reescribirse

(1) public void SurfaceChanged(SurfaceHolder titular, int formato, int ancho, int alto){}

// En Disparado cuando cambia el tamaño de la superficie

(2) public void SurfaceCreated(SurfaceHolder titular){}

// Disparado cuando se crea, generalmente llamando al hilo de dibujo aquí.

(3) public void SurfaceDestroyed(SurfaceHolder titular) {}

// Se dispara cuando se destruye, generalmente el hilo de dibujo se detiene y se libera aquí.

Todo el proceso: heredar SurfaceView e implementar la interfaz SurfaceHolder.Callback----gt; SurfaceView.getHolder() obtiene el objeto SurfaceHolder----Gt SurfaceHolder.addCallback(callback) agrega una devolución de llamada; función--- -gt; SurfaceHolder.lockCanvas() obtiene el objeto Canvas y bloquea el lienzo----gt; Pintura del lienzo----gt; y muestra los gráficos.