Red de conocimiento informático - Computadora portátil - Siete formas de implementar la reproducción de GIF en Android

Siete formas de implementar la reproducción de GIF en Android

Antecedentes: en el proyecto, se implementó un cierto requisito para implementar un ícono con efectos animados. Para lograr el efecto requerido por la interfaz de usuario, se probaron una variedad de soluciones. uso de estas soluciones y cómo combinarlas con el proyecto. Situación actual, elija un plan.

Enlace: /bumptech/glide

Glide es un marco de carga de imágenes común en Android y uno de los dos principales marcos de carga de imágenes en Android. Por supuesto, era similar a ImageLoader en. los primeros tiempos, Picasso y Picasso.

Glide es el primer framework de carga de imágenes en Android y uno de los más populares.

Cuando Glide carga Gif, utiliza el objeto GifDrawable que usamos habitualmente.

Por supuesto, si carga un mapa de bits o un GifDrawable, puede determinar si el elemento dibujable implementa Animatable:

p>

p>

Enlace:/koral--/android-gif-drawable

android-gif-drawable es también uno de los marcos de carga de imágenes más populares en Android

Este se usa. La biblioteca para reproducir Gif también usa pl.GifDrawableGifDrawable y pl.GifDrawableGifDrawable. GifDrawableObjeto GifDrawable, que es diferente de Glide, este último es más sencillo de crear

Puedes elegir diferentes constructores para crear objetos según tus necesidades

GifDrawable implementa las interfaces Animatable y MediaPlayerControl, por lo que puede usar sus respectivos métodos, etc.

Uso de MediaPlayerControl

Los controles estándar de MediaPlayer (como VideoView) se pueden usar para controlar animaciones GIF y mostrar su progreso actual.

Simplemente configure GifDrawable en MediaPlayer en MediaController de la siguiente manera:

Para un uso más detallado, consulte Uso de Github

Enlace: android .jar- android. gráficos.drawable

GifDrawable se puede utilizar para controlar animaciones GIF y mostrar el progreso actual. drawable

AnimatedImageDrawable es la clase oficial para reproducir imágenes animadas en Android. La ventaja es que es oficialmente estable y eficiente. La desventaja es que solo es compatible con la versión Android P (api = 28) o superior. p>

El método de uso también es relativamente simple

Enlace: android.jar-android.graphics

android.graphics.Movie también es una clase que viene con Android, que se puede usar para cargar y reproducir animaciones Gif. Puede ser relativamente engorroso de implementar. Se ha marcado oficialmente como @Deprecated {@ link android.graphics.drawable.AnimatedImageDrawable}, pero aún es necesario hablar de ello.

Los constructores principales son los siguientes:

El dominio de la película se puede obtener a partir del flujo de entrada, la ruta del archivo y la matriz de bytes del archivo Gif a través del código fuente. Luego podemos manipular el archivo Gif manipulando el objeto Película.

Aquí hay varias formas de lograr esto:

La clave es que Movie no proporciona oficialmente un oyente de devolución de llamada, por lo que debemos escuchar manualmente.

Si estás interesado puedes leer este artículo, está muy bien escrito. La vista personalizada de Android reproduce animaciones Gif.

Por supuesto, además de estas, existen soluciones multiplataforma. En comparación con los archivos gif tradicionales, Lottie usa archivos json para representar archivos fuente de animación.

¿Qué impacto tiene Lottie en los APK?

Agregue dependencias en el archivo build.gradle de su proyecto:

Clases principales:

Animación de carga:

Se puede acceder a Lottie a través de Load animaciones de la siguiente manera:

La forma más sencilla es utilizar LottieAnimationView:

Se recomienda utilizar lottie_rawRes, que permite especificar el archivo de animación como referencia estática a través del lenguaje R. archivo, en lugar de utilizar el nombre de archivo de cadena especificado.

Para obtener más detalles y uso, consulte la documentación oficial

Enlace: /platform/frameworks/ex/ /android-5.0.2_r1/framesequence

FrameSequenceDrawable se parece más a un formato webp. Un soporte, por lo que al usarlo, debes convertir tu gif a webp.

Echemos un vistazo a los principales métodos de construcción:

A continuación se explica cómo usarlo:

[Facebook/Fresco] (/facebook/fresco) también admite la carga de gif, que es más o menos lo mismo, así que no lo presentaré demasiado aquí.

Glide está experimentando un problema por el cual los Gif se ejecutan más lentamente en algunos dispositivos; consulte issues_2471 para obtener más detalles.

Teniendo en cuenta que este proyecto ya ha integrado Glide, no hay intención de seguir introduciendo bibliotecas de terceros.

Teniendo en cuenta que Glide ya está integrado en el proyecto, no quiero seguir introduciendo bibliotecas de terceros.

Por lo tanto, este trabajo es gt;=androidP con AnimatedImageDrawable,lt;androidP con Glide, solo como referencia.