一 帧动画介绍
帧动画 就类似于 电影那种一张图一张图的切换
XML代码
先通过XML配置好 需要切换的图片 和 执行是否循环 和执行时间等 文件放在res/drawable 目录下
JAVA调用XML开启动画
先创建一个IamgeView 将其背景设置成 之前配置好的xml
ImageView imageView = (ImageView) findViewById(R.id.imageView); imageView.setImageResource(R.drawable.animation1); AnimationDrawable animationDrawable = (AnimationDrawable) animationIV.getDrawable(); animationDrawable.start();
注意事项
-
要在代码中调用 ImageView 的 setBackgroundResource 方法,如果直接在 XML 布局文件中设置其 src 属性当触发动画时会 ForceClose ;
-
在动画 start 之前要先 stop,不然在第一次动画之后会停在最后一帧,这样动画就只会触发一次;
-
正如SDK中所提到的,不要在 onCreate 中调用 start,因为 AnimationDrawable 还没有完全跟 Window 相关联,如果想要界面显示时就开始动画的话,可以在 onWindowFoucsChanged 中调用 start 。
属性动画
属性动画指的是 通过改变view 的属性来实现动画 跟补间动画本质的区别在于 补间动画 在改变的只是样子 例如将一个Button 放大 补间动画 放大后 其点击时间 并没有变 还是原来的大小
具体先看这篇文章
插值器
Interpolator class | Resource ID | 备注 |
AccelerateDecelerateInterpolator | @android:anim/accelerate_decelerate_interpolator | 加速减速 |
AccelerateInterpolator | @android:anim/accelerate_interpolator | 加速 |
AnticipateInterpolator | @android:anim/anticipate_interpolator | 退小步往前冲 |
AnticipateOvershootInterpolator | @android:anim/anticipate_overshoot_interpolator | 退小步冲过头退回 |
BounceInterpolator | @android:anim/bounce_interpolator | 球落地弹动效果 |
CycleInterpolator | @android:anim/cycle_interpolator | 周期重复 |
DecelerateInterpolator | @android:anim/decelerate_interpolator | 减速 |
LinearInterpolator | @android:anim/linear_interpolator | 匀速 |
OvershootInterpolator | @android:anim/overshoot_interpolator | 冲过头再退回 |