Giter VIP home page Giter VIP logo

iostyle / svgaplayer-android Goto Github PK

View Code? Open in Web Editor NEW

This project forked from svga/svgaplayer-android

0.0 0.0 0.0 5.99 MB

Similar to Lottie. Render After Effects / Animate CC (Flash) animations natively on Android and iOS, Web. 使用 SVGAPlayer 在 Android、iOS、Web中播放 After Effects / Animate CC (Flash) 动画。

Home Page: http://svga.io

License: Apache License 2.0

Java 49.44% Kotlin 50.56%

svgaplayer-android's Introduction

SVGAPlayer

简体中文

支持本项目

  1. 轻点 GitHub Star,让更多人看到该项目。

Introduce

SVGAPlayer is a light-weight animation renderer. You use tools to export svga file from Adobe Animate CC or Adobe After Effects, and then use SVGAPlayer to render animation on mobile application.

SVGAPlayer-Android render animation natively via Android Canvas Library, brings you a high-performance, low-cost animation experience.

If wonder more information, go to this website.

Usage

Here introduce SVGAPlayer-Android usage. Wonder exporting usage? Click here.

Install Via Gradle

We host aar file on JitPack, your need to add JitPack.io repo build.gradle

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

Then, add dependency to app build.gradle.

compile 'com.github.yyued:SVGAPlayer-Android:latest'

Static Parser Support

Perser#shareParser should be init(context) in Application or other Activity. Otherwise it will report an error: Log.e("SVGAParser", "在配置 SVGAParser context 前, 无法解析 SVGA 文件。")

Matte Support

Head on over to Dynamic · Matte Layer

Proguard-rules

-keep class com.squareup.wire.** { *; }
-keep class com.opensource.svgaplayer.proto.** { *; }

Locate files

SVGAPlayer could load svga file from Android assets directory or remote server.

Using XML

You may use layout.xml to add a SVGAImageView.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.opensource.svgaplayer.SVGAImageView
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        app:source="posche.svga"
        app:autoPlay="true"
        android:background="#000" />

</RelativeLayout>

The following attributes is allowable:

source: String

The svga file path, provide a path relative to Android assets directory, or provide a http url.

autoPlay: Boolean

Defaults to true.

After animation parsed, plays animation automatically.

loopCount: Int

Defaults to 0.

How many times should animation loops. 0 means Infinity Loop.

clearsAfterStop: Boolean

Defaults to true.

Clears canvas after animation stop.

clearsAfterDetached: Boolean

Defaults to true.

Clears canvas after SVGAImageView detached.

fillMode: String

Defaults to Forward. Could be Forward, Backward.

Forward means animation will pause on last frame after finished.

Backward means animation will pause on first frame after finished.

Using code

You may use code to add SVGAImageView either.

Create a SVGAImageView instance.

SVGAImageView imageView = new SVGAImageView(this);

Declare a static Parser instance.

parser = SVGAParser.shareParser()

Init parser instance

You should initialize the parser instance with context before usage.

SVGAParser.shareParser().init(this);

Otherwise it will report an error: Log.e("SVGAParser", "在配置 SVGAParser context 前, 无法解析 SVGA 文件。")

You can also create SVGAParser instance by yourself.

Create a SVGAParser instance, parse from assets like this.

parser = new SVGAParser(this);
parser.decodeFromAssets("posche.svga", new SVGAParser.ParseCompletion() {
    // ...
});

Create a SVGAParser instance, parse from remote server like this.

parser = new SVGAParser(this);
parser.decodeFromURL(new URL("https://github.com/yyued/SVGA-Samples/blob/master/posche.svga?raw=true"), new SVGAParser.ParseCompletion() {
    
});

Create a SVGADrawable instance then set to SVGAImageView, play it as you want.

parser = new SVGAParser(this);
parser.decodeFromURL(..., new SVGAParser.ParseCompletion() {
    @Override
    public void onComplete(@NotNull SVGAVideoEntity videoItem) {
        SVGADrawable drawable = new SVGADrawable(videoItem);
        imageView.setImageDrawable(drawable);
        imageView.startAnimation();
    }
    @Override
    public void onError() {

    }
});

Cache

SVGAParser will not manage any cache, you need to setup cacher by yourself.

Setup HttpResponseCache

SVGAParser depends on URLConnection, URLConnection uses HttpResponseCache to cache things.

Add codes to Application.java:onCreate to setup cacher.

val cacheDir = File(context.applicationContext.cacheDir, "http")
HttpResponseCache.install(cacheDir, 1024 * 1024 * 128)

SVGALogger

Updated the internal log output, which can be managed and controlled through SVGALogger. It is not activated by default. Developers can also implement the ILogger interface to capture and collect logs externally to facilitate troubleshooting Set whether the log is enabled through the setLogEnabled method Inject a custom ILogger implementation class through the injectSVGALoggerImp method

Features

Here are many feature samples.

APIs

Head on over to https://github.com/yyued/SVGAPlayer-Android/wiki/APIs

CHANGELOG

Head on over to CHANGELOG

Credits

Contributors

This project exists thanks to all the people who contribute. [Contribute].

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

svgaplayer-android's People

Contributors

1290846731 avatar andyliumstar avatar daishengda2018 avatar errnull avatar fdh19979 avatar gavinliu avatar iostyle avatar labmem003 avatar maxlee avatar microjixl avatar monkeywithacupcake avatar painld6 avatar ponycui avatar xxjy avatar youxiachai avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.