Android 动画之逐帧动画

149 阅读1分钟

所谓的逐帧动画,就是一帧一帧的播放图片,像放电影一样。

逐帧动画的XML实现

1、定义xml动画文件
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="true">
    <item android:drawable="@drawable/two" android:duration="1000"></item>
    <item android:drawable="@drawable/three" android:duration="1000"></item>
    <item android:drawable="@drawable/four" android:duration="1000"></item>
</animation-list>

说明: android:oneshot="true" 定义为true说明动画只会执行一次。 android:drawable 表示这一帧动画所对应的图片资源,android:duration表示这一帧动画的时长,单位为毫秒。

2、设置给一个ImageView
<ImageView
    android:layout_marginTop="100dp"
    android:onClick="onClick"
    android:src="@drawable/frames"
    android:layout_width="100dp"
    android:layout_height="100dp"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:id="@+id/imageview"/>
3、开始动画
val imageView:ImageView = findViewById(R.id.imageview)
val anim = imageView.drawable as AnimationDrawable
anim.start()

oia.gif

参考资料《Android自定义控件开发与实战》