效果
实现
分析
首先动画效果需要在一个位于顶层的view上绘制,目的是不被其他控件遮挡。
添加点击事件,触发后给控件加一个抖动动画,结束后开始粒子爆炸效果,爆炸结束后恢复原状。
所有粒子放在一个二维数组里,由动画管理器进行管理,粒子工厂得出每个粒子的颜色、位置、半径、透明度,给二位数组赋值,爆炸特效启动后,在view的onDraw方法里调用管理器的方法使每个粒子开始运动,同时invalidate,使粒子一直运动,直至结束。
关键代码
粒子动画管理器:
public class ExplosionAnimator extends ValueAnimator {
private static int default_duration = 1500;
private Particle[][] mParticle;
private ParticleFactory mParticleFactory;
private View mContainer;
private Paint mPaint;
public ExplosionAnimator(ParticleFactory mParticleFactory, Bitmap bitmap, Rect rect, View mContainer) {
this.mParticleFactory = mParticleFactory;
this.mContain