Surface Flinger, SurfaceView, Surface, SurfaceHolder y Bitmap es Android

Estoy aprendiendo de la documentación de Suface, Suface Flinger, SurfaceView, SurfaceHolder y Bitmap. He encontrado las siguientes definiciones:

Surface Surface es una colección de píxeles. Una Superficie es un objeto que contiene píxeles que se están componiendo en la pantalla. Cada ventana que ves en la pantalla (un cuadro de diálogo, tu actividad de pantalla completa, la barra de estado) tiene su propia superficie a la que se dirige y Surface Flinger hace que éstos aparezcan en la pantalla final en su orden Z correcto. Normalmente, una superficie tiene más de un búfer (normalmente dos) para hacer un renderizado de doble búfer: la aplicación puede dibujar su siguiente estado UI mientras que el desvío de superficie está componiendo la pantalla usando el último búfer, sin tener que esperar a que la aplicación termine dibujo.

SurfaceView Esta clase se utiliza para presentar una vista previa de cámara en vivo al usuario. Un SurfaceView es una implementación especial de View que también crea su propia superficie dedicada para que la aplicación realice directamente (fuera de la jerarquía de vista normal, que de otra forma debe compartir la superficie única para la ventana)

Bitmap Un mapa de bits es un contenedor para la colección de píxeles, es simplemente una matriz de píxeles con algunas otras funciones convenientes.

Canvas Canvas es una clase que contiene todos los métodos de dibujo. Es similar a la clase Graphics en AWT / Swing en Java. Tiene toda la lógica en cómo dibujar, una caja etc. Una lona funciona en un mapa de bits.

Pero no estoy claro sobre SurfaceHolder y SurfaceFlinger y de acuerdo con la definición anterior mapa de bits también es contenedor de píxeles y superficie también.

¿Puedes ayudarme a darme un entendimiento claro de la definición de todos estos objetos?

Un lienzo es un contexto básico para hacer dibujo con la API de gráficos. Usted puede crear su propia lona que envuelve un mapa de bits para hacer el dibujo fuera de pantalla, y por supuesto el marco de la interfaz de usuario pasará los lienzos a los widgets para que se dibujen en. Todos estos widgets son subclases de View. O, si pueden contener otros widgets, entonces subclase de ViewGroup (que es una subclase de View).

Si desea realizar animaciones de alta velocidad de fotogramas, debe subclase desde SurfaceView (o su subclase GLSurfaceView, si desea hacer renderizado en pantalla de OpenGL-ES). Cada SurfaceView tiene un SurfaceHolder, que tiene métodos lockCanvas que puede llamar en cualquier momento para obtener un Canvas en el que dibujar una visualización actualizada y enviar de nuevo para que el usuario vea inmediatamente a través de unlockCanvasAndPost.

Para obtener más información, consulte Conceptos gráficos 2D y sugerencias de widget personalizadas

  • ¿Cómo se relacionan las devoluciones de llamada de SurfaceHolder con el ciclo de vida de la actividad?
  • Antialiasing en TextureView
  • Android: Cómo agregar un botón en vista de superficie
  • Cómo hacer SurfaceView con fondo transparente?
  • Null Canvas en SurfaceView Thread, a pesar de detener Thread en surfaceDestroyed () - sólo en Android 4 / ICS
  • ¿Cuándo se produce SurfaceDestroyed ()
  • Cómo obtener un SurfaceHolder con una superficie válida (necesario por EGL.eglCreateWindowSurface)?
  • WaitingInMainSignalCatcherLoop Error en la aplicación de Android
  • Cómo hacer transparente la superficie
  • Pantalla en blanco / negro en la galaxia S3 con jell bean v4.1.1
  • Cómo encontrar el mejor PixelFormat para un Android SurfaceView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.