• Android SVGA动画


    官方地址

    https://svga.io/

    介绍

    全新的动画格式
    高性能动画播放体验
    SVGA 是一种同时兼容 iOS / Android / Flutter / Web 多个平台的动画格式。

    使用

    gradle

    maven { url 'https://jitpack.io' }
    
    • 1
    implementation 'com.github.yyued:SVGAPlayer-Android:latest.release'
    
    • 1

    xml

          <com.opensource.svgaplayer.SVGAImageView
                    android:id="@+id/_SVGAImageView"
                    android:layout_height="match_parent"
                    android:scaleType="fitXY"
                    android:layout_marginLeft="@dimen/dp_30"
                    android:layout_marginRight="@dimen/dp_30"
                    android:layout_marginTop="@dimen/dp_20"
                    android:layout_marginBottom="@dimen/dp_20"
                    app:fillMode="Backward"
                    android:layout_width="match_parent" />
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    app:fillMode 属性

    Forward表示动画完成后将在最后一帧暂停。
    Backward意味着动画将在完成后的第一帧暂停。
    Clear动画播放完毕后,所有画布内容被清空,但只是画布,不涉及SVGAVideoEntity内部数据。

    app:source 属性

    动画文件access/svga/xxx.svga

    app:source=“svga/xxx.svga”

    app:autoPlay 属性 自动播放

    true 自动播放
    false 不自动播放

    java

    
            SVGAImageView _SVGAImageView = view.findViewById(R.id._SVGAImageView);
    
            SVGAParser svgaParser = new SVGAParser(context);
            svgaParser.decodeFromAssets("svga/draw_card_kings.svga",
                new SVGAParser.ParseCompletion() {
                    @Override
                    public void onComplete(@NonNull SVGAVideoEntity svgaVideoEntity) {
                        drawable = new SVGADrawable(svgaVideoEntity);
                        // 设置drawable 资源
                        _SVGAImageView.setImageDrawable(drawable);
                        // 暂停动画,停在第一个页面
                        //_SVGAImageView.pauseAnimation();
    
    					// 开始播放动画
    					_SVGAImageView.startAnimation();
    
                        // 设置为填充模式
                        drawable.setScaleType(ImageView.ScaleType.FIT_XY);
                        // 设置回调
                        _SVGAImageView.setCallback(new SVGACallback() {
                            @Override
                            public void onPause() {
                                // 暂停
                            }
    
                            @Override
                            public void onFinished() {
                                // 完成
                            }
    
                            @Override
                            public void onRepeat() {
    
                            }
    
                            @Override
                            public void onStep(int i, double v) {
    
                            }
                        });
                    }
    
                    @Override
                    public void onError() {
    
                    }
                }, new SVGAParser.PlayCallback() {
                    @Override
                    public void onPlay(@NonNull List<? extends File> list) {
    
                    }
                });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
  • 相关阅读:
    Spire.Office for Java 7.8.6 Hotfix
    【可扩展性】谷歌可扩展和弹性应用的模式
    基于bert-base-chinese的二分类任务
    【GO语言编程】(四)
    (九)DFI接口时序
    docker-network网络
    深入理解 happens-before 原则
    linux笔记(6):东山哪吒D1H显示HDMI测试-命令行调试
    【Python百日进阶-WEB开发】Day164 - Django入门:框架要点、流程
    2022Flink大数据比赛项目-焦点科技大数据编程大赛
  • 原文地址:https://blog.csdn.net/mhw828/article/details/125426401