【Android】SVGAPlayer的使用介绍

2023-09-13 17:23:09

背景

客户需要通过SVG来做直播场景的炫酷动画。故调用得到如下的工具库:
GIthub-SVAGPlayer

组装

通过xml组装到 项目中,然后调用提供的api 实现自己的需求即可。

<?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>

介绍

SVGAPlayer-Android是一个用于在Android应用中播放SVGA(Scalable Vector Graphics Animation)动画的库。它支持矢量动画和帧动画,并提供了一系列方法来控制动画的播放、暂停、停止和事件监听等。

下面是SVGAPlayer-Android库的主要方法及其使用说明:

  1. 设置动画资源:
svgaPlayerView.setAnimationFromAssets("your_animation.svga");

使用setAnimationFromAssets方法从assets文件夹中加载动画资源文件。确保动画文件与你的assets文件夹中的文件名相匹配。

  1. 设置动画资源(通过文件路径):
svgaPlayerView.setAnimationFromFile("path/to/your_animation.svga");

使用setAnimationFromFile方法通过文件路径加载动画资源文件。

  1. 设置动画资源(通过URL):
svgaPlayerView.setAnimationFromURL("https://example.com/your_animation.svga");

使用setAnimationFromURL方法通过URL加载动画资源文件。

  1. 设置动画资源(通过输入流):
InputStream inputStream = getAssets().open("your_animation.svga");
svgaPlayerView.setAnimationFromInputStream(inputStream, "your_animation.svga");

使用setAnimationFromInputStream方法通过输入流加载动画资源文件。

  1. 开始播放动画:
svgaPlayerView.startAnimation();

使用startAnimation方法开始播放动画。

  1. 暂停动画:
svgaPlayerView.pauseAnimation();

使用pauseAnimation方法暂停动画。

  1. 继续播放动画:
svgaPlayerView.continueAnimation();

使用continueAnimation方法继续播放暂停的动画。

  1. 停止动画:
svgaPlayerView.stopAnimation();

使用stopAnimation方法停止播放动画。

  1. 设置动画循环次数:
svgaPlayerView.setLoops(3);

使用setLoops方法设置动画循环次数,默认为0,表示无限循环。

  1. 动画播放事件监听:
svgaPlayerView.setCallback(new SVGACallback() {
    @Override
    public void onPause() {
        // 动画暂停时的回调
    }

    @Override
    public void onFinished() {
        // 动画播放完成时的回调
    }

    @Override
    public void onRepeat() {
        // 动画循环播放时的回调
    }

    @Override
    public void onStep(int frame, double percentage) {
        // 动画播放进度更新时的回调
    }
});

使用setCallback方法设置动画播放事件的监听器,根据需要实现相应的回调方法。

以上是SVGAPlayer-Android库的主要方法,你可以根据自己的需求使用这些方法来加载、播放、暂停和停止SVGA动画,并监听动画的播放事件。确保你的项目支持当前主流的Android版本,并正确导入SVGAPlayer-Android库。

更多推荐

FPGA计数器边界问题解析

FPGA计数器边界问题解析一次作者在处理AMBE2000数据接收过程中,遇到一个问题,对该计数器边界总是模糊不清。现在予以说明,以警示以后工作时书写错误代码。AMBE2000数据一旦准备好后,一次会输出24个字,其中第1个字0x13ec是同步头,连上同步头的前12个字为控制字,后12个字为数据字,我们需要提前数据字,抛

人脸三维重建

人脸三维重建调研目标根据某人一张或多张二维人脸图像重建出三维人脸模型(这里主要讨论单张)。人脸三维重建发展概述三维人脸重建主要有两种思路:model-based和model-free。model-based以[AMorphableModelForTheSynthesisOf3DFaces,1999](AMorphabl

控价与数据分析的关系

品牌在做线上控价时,会面对许多的数据,如店铺数据、行业数据,当这些数据仅仅只是拿来做监测低价输出低价报表使用,是没有发挥其最大作用的,因为商品链接的字段较丰富,涉及的内容会包含销量、评价量、促销信息等,所以可以通过这些字段内容分析不同维度的数据,输出各种对品牌有帮助的分析报告。力维网络有专业的数据采集能力,同时也有一支

电子商务平台市场动向的数据分析平台:阿里商品指数,包括淘宝采购指数,淘宝供应指数,1688供应指数。

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用CSDN平台,自主完成项目设计升级,提升自身的硬实力。专栏订阅:项目大全提升自身的硬实力[专栏详细介绍:项目设计

相比SiteGPT,用HelpLook创建Chatbot有哪些优势?

在当今快节奏的数字时代,很多企业都在不断寻找新的方法来改善客户支持和简化运营。一种广受欢迎的解决方案是使用AI问答机器人(Chatbot)。聊天机器人凭借其理解自然语言查询和实时响应的能力,已成为各行业企业不可或缺的工具。SiteGPT和HelpLook是两个比较强大的人工智能工具,在技术和人工智能社区中获得了不错的关

HTTPS加密流程

HTTPSHTTPS一.什么是HTTPS二.什么是"加密"三.加密的方式有哪些1.对称加密2.非对称加密3.中间人攻击4.引入证书HTTPS一.什么是HTTPSHTTPS与HTTP一样都是应用层协议,与HTTPS不同的是:HTTP的协议内容都是按照文本方式进行明文传输的,这导致在传输过程第三方者能够轻易获取传输的内容,

【操作系统】实验一 Linux初步

文章目录Linux初步一、实验目的二、实验内容Linux初步一、实验目的通过proc文件系统观察整个Linux内核和系统的一些重要特征,并编写一个程序,使用proc文件系统获得以及修改系统的各种配置参数。本实验需要学生具有Linux的基本操作技能,以及采用C语言编写程序的能力。二、实验内容以超级用户的身份登录Linux

【面试刷题】——TCP三次握手,以及为什么要三次握手

TCP(传输控制协议)的三次握手是建立TCP连接的过程,它确保了通信双方的正常启动和参数协商。三次握手的过程如下:客户端发送请求:客户端首先向服务器发送一个特殊的TCP报文,称为SYN(同步)报文。这个报文包含一个随机的序列号(ClientISN),并请求建立连接。此时客户端进入"SYN-SENT"状态。服务器回应:服

C2基础设施威胁情报对抗策略

威胁情报是指在信息安全和安全防御领域,收集、分析和解释与潜在威胁相关的信息,以便预先发现并评估可能对组织资产造成损害的潜在威胁,是一种多维度、综合性的方法,其通过信息的收集、分析和研判,帮助组织了解可能对其安全构成威胁的因素。这种方法不仅仅着重于技术层面,还包括了社会、心理、政治等多个维度,以此更好地应对不断变化和复杂

用js理解常用设计模式

目录原则创建型单例模式工厂模式js闭包:函数工厂结构型代理模式装饰器模式行为型职责链模式观察者模式原则S–SingleResponsibilityPrinciple单一职责原则一个程序只做好一件事如果功能过于复杂就拆分开,每个部分保持独立例如:Promise每个then中的逻辑只做好一件事O–OpenClosedPri

旧版office如何卸载干净,Mac电脑移除office教程

版office卸载不干净导致无法激活新版Microsoftoffice,这个问题如何解决呢?深受这一烦恼的小伙伴看过来!旧版office由于证书一直清理不干净,电脑上有旧证书存在导致新版offce激活不成功,具体手动清理方法带给大家。Microsoftoffice365安装方法一:关闭所有Office应用程序。打开“应

热文推荐