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.