目录
一、动画分类:
- TweenAnimation(补间动画)
- FrameAnimation(帧动画)
- PropertyAnimation(属性动画)
二、帧动画:
- 定义
帧动画是图片的叠加。原理和 gif 动画 或者电影一样,这种动画的实质其实是 Drawable, 所以帧动画的 XML 定义方式文件一般放在 res/drawable/
目录下。
- 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/drawable_resource"
android:duration="integer" />
</animation-list>
<animation-list>
必须是根节点,包含一个或者多个<item>
元素,属性有:
android:oneshot
true 代表只执行一次,false 循环执行。
<item>
类似一帧的动画资源。
<item>
animation-list 的子项,包含属性如下:
android:drawable 一个 frame 的 Drawable 资源。
android:duration 一个 frame 显示多长时间。
- 代码使用方式:
ImageView animImage = (ImageView) findViewById(R.id.anim_image);
animImage.setBackgroundResource(R.drawable.sport_pk);
sportPkAnimation = (AnimationDrawable) animImage.getBackground();
sportPkAnimation.start();
三、属性动画:
ValueAnimator
ValueAnimator是整个属性动画机制当中最核心的一个类,属性动画的运行机制是通过不断地对值进行操作来实现的,而初始值和结束值之间的动画过渡就是由ValueAnimator这个类来负责计算的。它的内部使用一种时间循环的机制来计算值与值之间的动画过渡,我们只需要将初始值和结束值提供给ValueAnimator,并且告诉它动画所需运行的时长,那么ValueAnimator就会自动帮我们完成从初始值平滑地过渡到结束值这样的效果。除此之外,ValueAnimator还负责管理动画的播放次数、播放模式、以及对动画设置监听器等,确实是一个非常重要的类。
但是Valu