官方地址
https://svga.io/
介绍
全新的动画格式
高性能动画播放体验
SVGA 是一种同时兼容 iOS / Android / Flutter / Web 多个平台的动画格式。
使用
gradle
maven { url 'https://jitpack.io' }
implementation 'com.github.yyued:SVGAPlayer-Android:latest.release'
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" />
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) {
}
});