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 holder,int format,int width,int height){}
// 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----> SurfaceView.getHolder() obtiene el objeto SurfaceHolder---->SurfaceHolder.addCallback(callback) agrega una función de devolución de llamada- ---> SurfaceHolder.lockCanvas() obtiene el objeto Canvas y bloquea el lienzo---->Dibujo de Canvas---->SurfaceHolder.unlockCanvasAndPost(Canvas Canvas) finaliza el dibujo bloqueado y envía los cambios para mostrar los gráficos.