Home / Android-Entwicklung / Das Android Arsenal – Animationen

Das Android Arsenal – Animationen

Zuerst sollten Sie wissen, was Lottie ist?

Lottie lädt und rendert Animationen und Vektoren, die im Bodymovin-JSON-Format exportiert wurden. Bodymovin JSON kann aus After Effects mit Bodymovin, Sketch mit Lottie Sketch Export und aus Haiku erstellt und exportiert werden.

Zum ersten Mal können Designer wunderschöne Animationen erstellen und versenden, ohne dass ein Ingenieur sie sorgfältig von Hand neu erstellt. Da die Animation von> JSON unterstützt wird, sind sie extrem klein, können aber sehr komplex sein!

Fangen wir an! 😃

AXrLottie installieren

Im ersten Schritt sollten Sie AXrLottie installieren.

Grundlegende Verwendung

Erstellen Sie eine AXrLottieImageView in Ihrem Layout.

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

Jetzt müssen Sie nur noch Ihre Lottie-Animation laden.

 lottieView .  setLottieDrawable ( AXrLottieDrawable .  fromAssets ( this 


fileName)
                .setSize (Breite, Höhe)
                .bauen());
lottieView .  playAnimation (); 

Sie können Lottie-Dateien aus folgenden Quellen laden:

  • Datei
  • Json (String)
  • URL
  • Assets
  • Ressource
  • InputStram

lottie speichert Animationen und Dateien zwischen, die Sie in AXrLottieDrawable Builder deaktivieren können.

Ausgabe

LayerProperty

Eigenschaften:

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

Ausgabe

AnimationLayers

 für  ( AXrLottieLayerIno layerInfo :  lottieDrawable . 
 getLayers ()) {
     Log .  i ( " AXrLottie "  " Schichtname: "  +  layerInfo . 
 getName ());
} 

Lottie2Gif

Sie können Lottie-Animationen als GIF exportieren! dank gif-h

 AXrLottie2Gif . 
 create (lottieDrawable)
                .setListener ( neu  AXrLottie2Gif .  Lottie2GifListener 
 () {
                     langer 

 Start;

                     @Override 
 public  void  onStarted 
 () {
                        start  =  System . 


 currentTimeMillis ();
                    }}

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


 totalFrame);
                    }}

                     @Override 
 public  void  onFinished 
 () {
                        log ( " GIF erstellt ("  +  ( System .  currentTimeMillis ()  -  start)  +  " ms)   r  n "  + 
 " Resolution: "  +  gifSize  +  " x "  +  gifSize  +  "  r  n "  + 
 " Pfad: "  +  Datei .  getAbsolutePath ()  +  "  r  n  " + 
 " Dateigröße: "  +  (Datei .  Länge ()  /  1024 )  +  " kb " 


);
                    }}
                })
                .setBackgroundColor ( Color .  WHITE 


)
                .setOutputPath (Datei)
                .setSize (gifSize, gifSize)
                .setBackgroundTask ( true 
)
                .setDithering ( false 
)
                .setDestroyable ( true 
)
                .build (); 

Ausgabe

Listener

OnFrameChangedListener:

 void  onFrameChanged ( AXrLottieDrawable  drawable,  int  19659036] OnFrameRenderListener: 

 void  onUpdate ( AXrLottieDrawable  drawable,  int  frame,  long timeDiff, [19459090]  boolean
 Macht);
 Bitmap  renderFrame ( AXrLottieDrawable  drawable,  Bitmap Bitmap, [19459090]  int frame); 

AnimatedSticker - AXEmojiView you [19659kannAXrLottieImageViewinAXEmojiView/StickerViewmitfolgendemCodeerstellen:

 AXEmojiManager .  setStickerViewCreatorListener ( new  StickerViewCreatorListener 
 @Override 
 public  View  onCreateStickerView  ( @NonNull  Context  context  @Nullable  StickerCategory  Kategorie  Boolescher Wert  isRecent 
) {
         return  new  AXrLottieImageView 


 (Kontext);
    }}
    
     @Override 
 public  View  onCreateCategoryView  ( @NonNull  Context  context 
) {
         return  new  AXrLottieImageView 

 (Kontext);
    }}
}); 

füge dies kurz nach AXEmojiManager.install

hinzu und du kannst deine Animationen in StickerProvider

 @Override 
 public  StickerLoader 
 getLoader laden () {
         return  new  StickerLoader 
 () {
             @Override 
 public  void  onLoadSticker  ( View  view  Sticker  Aufkleber 
) {
                 if  (Ansicht  Instanz von  AXrLottieImageView  &&  Aufkleber  Instanz von  AnimatedSticker 
) {
                     AXrLottieImageView  lottieImageView  =  ( AXrLottieImageView 
) Ansicht;
                     AnimatedSticker  animierterSticker  =  ( AnimatedSticker 
) Aufkleber;
                     if  (animierter Sticker .  zeichnbar  ==  null 
) {
                        animierterSticker .  zeichnbar  =  Utils .  createFromSticker (Ansicht .  getContext (), animierterSticker,  100 

);
                    }}
                    lottieImageView .  setLottieDrawable (animierter Sticker . 
 zeichnbar);
                    lottieImageView . 



 playAnimation ();
                }}
            }}

             @Override 
 public  void  onLoadStickerCategory  ( View  view  StickerCategory  stickerCategory  boolean  19659084] ausgewählt 
) {
                 if  (Ansicht  Instanz von  AXrLottieImageView 
) {
                     AXrLottieImageView  lottieImageView  =  ( AXrLottieImageView 
) Ansicht;
                     AnimatedSticker  animierterSticker  =  ( AnimatedSticker ) stickerCategory . 
 getCategoryData ();
                     if  (animierter Sticker .  zeichnbar  ==  null 
) {
                        animierterSticker .  zeichnbar  =  Utils .  createFromSticker (Ansicht .  getContext (), animierterSticker,  50 

);
                    }}
                    lottieImageView .  setLottieDrawable (animierter Sticker . 
 zeichnbar);
                     //  lottieImageView.playAnimation (); 




                }}
            }}
        };
    } 

Ausgabe

Autor

Samsung / rlottie













 Copyright 2020 Amir Hossein Aghajari
Lizenziert unter der Apache-Lizenz, Version 2.0 (die "Lizenz");
Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden.
Eine Kopie der Lizenz erhalten Sie unter

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

Sofern nicht gesetzlich vorgeschrieben oder schriftlich vereinbart, Software
unter der Lizenz verteilt wird auf einer "AS IS" -BASIS verteilt,
OHNE GEWÄHRLEISTUNGEN ODER BEDINGUNGEN JEGLICHER ART, entweder ausdrücklich oder stillschweigend.
In der Lizenz finden Sie die spezifische Sprache für Berechtigungen und
Einschränkungen unter der Lizenz.

.

About AndroidWeltEditor

Check Also

Android Developers Blog: Warteschlange der Verbesserungen

Gepostet von Jeff Vander Stoep, Android Security & Privacy Team und Chong Zhang, Android Media …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.