Android 动画整理---- 帧动画

Android 动画详解——–帧动画

前言

对于动画,大多数Android 开发都玩得挺好的,这里也就不献丑了,本文重在记录,已经自己对动画的一些理解,鉴于篇幅问题,分为三个文章

Android 动画整理—- 帧动画
Android 动画整理—- 补间动画
Android 动画整理—- 属性动画

动画的分类

Android 的动画分类分2类,其中视图动画又可以细分为 帧动画 和 补间动画

  • 属性动画
  • 视图动画
    • 帧动画
    • 补间动画

一下会对这个三种动画逐一介绍

帧动画

什么是帧动画

AnimationDrawable按顺序显示一系列图片来创建动画,实现电影

如何使用帧动画

xml 中的 drawable 新建一个 根节点为animation-list动画的 资源

将每一帧动画按顺序摆放

例如

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<!-- oneshot 是否只播放一次 -->
<!-- duration 延时时间 单位毫秒 -->
<item android:drawable="@drawable/farm_0" android:duration="100" />
<item android:drawable="@drawable/farm_1" android:duration="100" />
<item android:drawable="@drawable/farm_2" android:duration="100" />

</animation-list>

然后使用 AnimationDrawable 将xml 绑定到 ImageView 上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class FrameAct : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_fram)



//找到 帧动画的资源
val animationDrawable =
ContextCompat.getDrawable(this, R.drawable.farm_anim) as AnimationDrawable
farm_img.background = animationDrawable

//开始播放帧动画
btn_start.setOnClickListener {
animationDrawable.start()
}

//停止播放帧动画
btn_end.setOnClickListener {
animationDrawable.stop()
}
}
}

属性值含义

参数含义
oneshot是否只播放一次 false: 只播放一次; true:循环播放
duration播放时间
drawable图片资源

运行效果如下

源码

博客
源码Github