Red de conocimiento del abogados - Preguntas y respuestas jurídicas - 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 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.