readme.md

    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]

    项目简介

    🚀 Github 镜像仓库 🚀

    源项目地址

    https://github.com/yyued/svgaplayer-android

    发行版本 3

    fix crash.

    全部发行版

    贡献者 27

    全部贡献者

    开发语言

    • Java 50.3 %
    • Kotlin 49.7 %