El Arsenal de Android – Animaciones

AXrLottie Renderizado de animación
y vectores exportados en formato JSON bodymovin
GitHub • Versiones


Captura de pantalla

Resumen

Instalación

AXrLottie solo está disponible en JCenter agregarlo como una dependencia (módulo gradle)

Implementación de Gradle & # 39; com.aghajari.rlottie: AXrLottie: 1.0.0 & # 39;

Maven [19659010] < adicción >
< groupId > com.aghajari.rlottie </ groupId >
< artifactId > AXrLottie </ artifactId >
< versión > 1.0.0 </ versión >
< tipo > pom </ tipo >
</ dependencia >

Primero debes saber qué es lotte?

Lottie carga y renderiza animaciones y vectores exportados al formato JSON bodymovin. Bodymovin JSON se puede crear y exportar desde After Effects con bodymovin, Sketch con Lottie Sketch Export y desde Haiku.

Por primera vez, los diseñadores pueden crear y enviar hermosas animaciones sin que un ingeniero las vuelva a crear cuidadosamente a mano. Dado que la animación es compatible con JSON, son de tamaño extremadamente pequeño pero pueden ser de gran complejidad.

¡COMENZEMOS! 😃

Instalar AXrLottie

Primer paso, debe instalar AXrLottie

Uso básico

Cree un AXrLottieImageView en su diseño.

  < com 
 .aghajari.rlottie. AXrLottieImageView
         android :  id  =   " @ + id / lotse_view " 
  android :  layout_width = [19659008]  " 180dp " 
  android :  layout_height  =   " 180dp " 
  android :  layout_gravity  =   " center "   /> 

Ahora solo tiene que cargar su lote de animación

  batchView .  setLottieDrawable ( AXrLottieDrawable .  fromAssets ( este 


 fileName)
                .setSize (ancho, alto)
                .construir());
Lotes and View .  playAnimation (); 

puede cargar el archivo por lotes de las siguientes fuentes:

  • Archivo
  • Json (String)
  • Url
  • Activos
  • Recurso
  • InputStram

por lotes y almacenará en caché animaciones y archivos que es posible deshabilitar la caché en AXrLottieDrawable Builder

Salida

LayerProperty

  lote y Vista .  setLayerProperty (  " layer_name. ** "   AXrLottieProperty .  colorProperty (color)); 

Propiedades:

  • Color
  • FillOpacity
  • StrokeOpacity
  • StrokeWidth
  • Stroke 19659041] TrOpacity
  • TrPosition
  • TrRotation
  • TrScale

Salida [19459000397

AnimationLayers

  para  ( AXrayerLotti1990 layerInfo :  lotes y dibujables . 
 getLayers ()) {
     Log .  i (  " AXrLottie "   " layerName: "  +  layerInfo . 
 ] getName ());
} 

Lottie2Gif

¡puede exportar animaciones por lotes como GIF! gracias a gif-h

 AXrLottie2Gif . 
 crear (lotes y dibujables)
                .setListener ( nuevo   AXrLottie2Gif .  Lottie2GifListener 
 () {
                     inicio prolongado 

;

                     @Override 
  public   void   onStarted 
 () {
                        inicio  =   Sistema . 


 currentTimeMillis ();
                    }

                     @Override 
  public   void   onProgress  ( int   frame  int   totalFrame 
) {
                        log (  " progreso: "  +  frame  +   " / "  + 


 totalFrame);
                    }

                     @Override 
  público   void   enFinished 
 () {
                        log (  " GIF creado ("  +  ( Sistema .  currentTimeMillis ()  -  inicio)  +   " ms)   r  n "  + 
  " Resolución: "  +  gifSize  +   " x "  +  gifSize  +   "   r  n "  + 
  " Ruta: "  +  archivo .  getAbsolutePath ()  +   "   r  n "  + 
  " Tamaño de archivo: "  +  (archivo .  longitud ()  /   1024 )  +   " kb " 


);
                    }
                })
                .setBackgroundColor ( Color .  BLANCO 


)
                .setOutputPath (archivo)
                .setSize (gifSize, gifSize)
                .setBackgroundTask ( true 
)
                .setDithering ( falso 
)
                .setDestroyable ( verdadero 
)
                .construir (); 

Salida

Listeners

OnFrameChangedListener:

AnimatedSticker – AXE005] YouView puede crear AXrLottieImageView en AXEmojiView / StickerView usando este código:

 AXEmojiManager .  setStickerViewCreatorListener ( nuevo   StickerViewCreatorListener 
 () {
     @Override 
  público   Ver   enCreateStickerView  ( @NonNull   Context   context  @Nullable   StickerCategory   categoría  booleano   isRecent 
) {
         volver   nuevo   AXrLottieImageView 


 (contexto);
    }
    
     @Override 
  público   Ver   enCreateCategoryView  ( @NonNull   Context   context 
) {
         volver   nuevo   AXrLottieImageView 

 (contexto);
    }
}); 

agréguelo justo después de AXEmojiManager.install

y podrá cargar sus animaciones en StickerProvider

 @Override 
  public   StickerLoader 
 getLoader () {
         volver   nuevo   StickerLoader 
 () {
             @Override 
  public   void   onLoadSticker  ( Ver   ver   Adhesivo   adhesivo 
) {
                 if  (ver  instancia de   AXrLottieImageView   &&  pegatina  instancia de   AnimatedSticker 
) {
                     AXrLottieImageView  lotes yImageView  =  ( AXrLottieImageView 
) vista;
                     AnimatedSticker  animatedSticker  =  ( AnimatedSticker 
) pegatina;
                     if  (animatedSticker .  drawable  ==   null 
) {
                        animatedSticker .  dibujable  =   Utils .  createFromSticker (ver .  getContext (), animatedSticker,  100 

);
                    }
                    lotes e ImageView .  setLottieDrawable (animatedSticker . 
 dibujable);
                    lotes e ImageView . 



 playAnimation ();
                }
            }

             @Override 
  public   void   onLoadStickerCategory  ( Ver   ver   StickerCategory   stickerCategory 
[1945903119659084]  seleccionado) {19459019] seleccionado si  (ver  instancia de   AXrLottieImageView 
) {
                     AXrLottieImageView  lotes yImageView  =  ( AXrLottieImageView 
) vista;
                     AnimatedSticker  animatedSticker  =  ( AnimatedSticker ) stickerCategory . 
 getCategoryData ();
                     if  (animatedSticker .  drawable  ==   null 
) {
                        animatedSticker .  dibujable  =   Utils .  createFromSticker (ver .  getContext (), animatedSticker,  50 

);
                    }
                    lotes e ImageView .  setLottieDrawable (animatedSticker . 
 dibujable);
                      //  lotes e ImageView.playAnimation (); 




                }
            }
        };
    } 

Salida

Autor

Samsung / rlottie













  Copyright 2020 Amir Hossein Aghajari
Con licencia de Apache License, Versión 2.0 (la "Licencia");
no puede utilizar este archivo excepto de acuerdo con la licencia.
Puede obtener una copia de la licencia en

   http://www.apache.org/licenses/LICENSE-2.0

A menos que lo exija la ley aplicable o se acuerde por escrito, el software
distribuido bajo la Licencia se distribuye "TAL CUAL",
SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ya sea expresa o implícita.
Consulte la licencia para el idioma específico que rige los permisos e
limitaciones de la licencia.

.

About MiReal

Compruebe también

El Arsenal de Android: Preferencias

💻 Instalación Agréguelo al archivo de la aplicación build.gradle : implementación & # 39; com.github.imangazalievm.material …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *